我有一个奇怪的例子。
如果我这样写:

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/

10-09 20:40