我試圖擴展我在網上找到的解釋器。解釋器將一個數字作爲唯一參數並將其作爲字符串返回(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
我的代碼是基於控制檯的;用戶訪問它像這樣:
> 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
如果這是從一個<input>
元素抓住,我就沒有太多的麻煩(如默認將是一個字符串開始),唉,這是並非如此。
我們需要看一些代碼:解釋器(可能只是展示問題的部分)和您的擴展。否則,我們只是猜測你可能會做些什麼來解決你的問題。 – 2014-12-03 23:29:49
假設他們傳遞給你'some_variable'或'Math.sqrt(4)'。應該發生什麼? – user2357112 2014-12-03 23:30:39
@ user2357112如果some_variable是一個字符串,我當前的代碼將返回「not a number」; Math.sqrt(4)返回「two」。 – 2014-12-03 23:31:26