Javascript 将浮点值取整,然后将其转换为区域设置字符串
我有一些奇怪的例子。 如果我这样写:Javascript 将浮点值取整,然后将其转换为区域设置字符串,javascript,Javascript,我有一些奇怪的例子。 如果我这样写: parseFloat("12345,987").toLocaleString("slv") 结果将如预期的那样SLV使用逗号作为十进制分隔符: 12.345987 但如果我先四舍五入到2位小数: parseFloat("12345,987").toFixed(2).toLocaleString("slv") 结果将始终使用英语分隔符Dot: 12345.99 这怎么可能? 它应该是:12.345,99如中所述,parseFloat仅用于小数,因此传入带有
parseFloat("12345,987").toLocaleString("slv")
结果将如预期的那样SLV使用逗号作为十进制分隔符:
12.345987
但如果我先四舍五入到2位小数:
parseFloat("12345,987").toFixed(2).toLocaleString("slv")
结果将始终使用英语分隔符Dot:
12345.99
这怎么可能?
它应该是:12.345,99如中所述,parseFloat仅用于小数,因此传入带有逗号的字符串可能会导致意外结果
例如,我在JSFIDLE中尝试了ParseFloat12345987.toLocaleStringslv,我的浏览器UK语言环境给了我12.345,这与您的结果不同
另一点需要注意的是,toFixed返回一个字符串,而tolocalString对数字进行操作。将ToLocalString应用于字符串也可能会出于不同的原因产生意外结果。如中所述,parseFloat仅用于小数,因此使用逗号传入字符串可能会导致意外结果
例如,我在JSFIDLE中尝试了ParseFloat12345987.toLocaleStringslv,我的浏览器UK语言环境给了我12.345,这与您的结果不同
另一点需要注意的是,toFixed返回一个字符串,而tolocalString对数字进行操作。将ToLocalString应用于字符串也可能出于不同的原因产生意外的结果。谢谢。我找到了一个解决方案: ParseFloat12345987.toLocaleStringslv,{minimumFractionDigits:2,maximumFractionDigits:2} 这样行。 例如,我尝试了parsefloat12345987.toLocaleStringslv
DJSKINER-你能用:sl SI代替slv吗?还是不行吗?谢谢。我找到了一个解决方案: ParseFloat12345987.toLocaleStringslv,{minimumFractionDigits:2,maximumFractionDigits:2} 这样行。 例如,我尝试了parsefloat12345987.toLocaleStringslv
DJSKINER-你能用:sl SI代替slv吗?它仍然不起作用吗?parseFloat的输出是一个数字,toFixed的输出是一个字符串。parseFloat的输出是一个数字,toFixed的输出是一个字符串。