我有一个奇怪的例子。
如果我这样写:
parseFloat("12345,987").toLocaleString("slv")
结果将与预期的一样(slv具有逗号作为小数点分隔符):
12.345,987
但是如果我先舍入到小数点后两位:
parseFloat("12345,987").toFixed(2).toLocaleString("slv")
结果将始终使用英文分隔符(点):
12,345.99
那怎么可能?
应该是:
12.345,99
最佳答案
如this answer中所述,parseFloat()
仅应与小数一起使用,因此在字符串中输入逗号可能会导致意外结果。
例如,我在JsFiddle中尝试了parseFloat("12345,987").toLocaleString("slv")
,而我的浏览器(英国语言环境)给了我12.345
,这与您的结果不同。
需要注意的另一点是toFixed()
返回字符串,但是toLocaleString()
对数字进行运算。将toLocaleString()
应用于字符串也可能由于其他原因而产生意外结果。
关于javascript - 四舍五入,然后到区域设置字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30095879/