當我寫一段JavaScript代碼處理一些浮點值時,一個想法讓我感到震驚。 JavaScript中的小數點符號是什麼?它總是.
?或者是文化特定的?那麼.toFixed()
和.parseFloat()
呢?如果我正在處理用戶輸入,它可能會包含本地文化特定的小數點分隔符。什麼是JavaScript中的小數點分隔符符號?
最終,我想編寫支持用戶輸入中兩個小數點的代碼 - 文化特定和.
,但如果我不知道JavaScript期望什麼,我就不能編寫這樣的代碼。
新增: OK,魯本斯法里亞斯suggests看similar question其中有一個整潔的接受的答案:
function whatDecimalSeparator() {
var n = 1.1;
n = n.toLocaleString().substring(1, 2);
return n;
}
這很好,它讓我得到了現場小數點。毫無疑問,邁向解決方案的一步。
現在,剩下的部分將是確定.parseFloat()
的行爲是什麼。有幾個回答指出,對於浮點文字,只有.
是有效的。 .parseFloat()
的行爲方式是否相同?或者可能需要在某些瀏覽器中使用本地小數點分隔符?是否有任何解析浮點數的方法?我應該推出我自己的即將確定嗎?
@ Vilx-對於你在做什麼,我會考慮使用一元(+)運算符而不是'parseFloat()'。驗證輸入時會容易得多。看到我更新的答案。 – 2010-01-18 11:06:46