Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将浮点值取整,然后将其转换为区域设置字符串_Javascript - Fatal编程技术网

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的输出是一个字符串。