온라인에서 찾은 통역사를 연장하려고합니다. 인터프리터는 숫자를 유일한 인수로 취해 문자열 (1 -> one, 2.3 -> two point three...
등)으로 반환합니다. 나는 'TIMES'와 'PLUS'와 같은 연산자 이름을 포함하도록 '언어'를 확장했습니다.숫자 인수를 취하여 형식을 유지합니까?
이제 내 문제가 있습니다. 이 연산자를 사용하기 위해서는 포함시켜야하는 유일한 방법은 숫자를 문자열로 전달하는 대신 인수를 인수로 전달하는 것입니다. 예를 들어, 내가 함수에 3*5-23.2
을 전달해야한다면, three TIMES five MINUS twenty three point two
을 반환하고 싶을 것입니다. 대신, 나는 이전 인수의 평가 된 형태 인 negative eight point two
을 얻습니다.
인수를 조작하여 평가되기 전에 문자열이되는 방법이 있습니까? 또는 사용자가 문자열을 입력하도록 강요해야합니다 (나쁜 것입니까?)?
편집 1
내 코드는 콘솔 기반 코드입니다. 사용자가 지금처럼 액세스 : (기본값으로 시작하는 문자열을 것 같은)이이 <input>
요소에서 잡고 할 것 인 경우에
> wordify(34)
"thirty four"
> wordify(3.4)
"three point four"
> wordify(Math.PI)
"three point one four one five nine two six..." // omitted for convenience
, 나는 슬프게도,이는 등 많은 문제가없는 것 별로.
우리는 약간의 코드를보아야합니다 : 인터프리터 (문제가있는 부분 일 수도 있음)와 이에 대한 확장 기능. 그렇지 않으면 우리는 문제를 해결하기 위해 할 수있는 일을 추측하고 있습니다. –
'some_variable' 또는'Math.sqrt (4)'를 넘겨 준다고 가정하십시오. 어떻게해야합니까? – user2357112
@ user2357112 some_variable이 문자열 인 경우 현재 코드는 "숫자가 아님"을 반환합니다. Math.sqrt (4)는 "two"를 반환합니다. –