需要将小数限制为20

时间:2018-11-13 09:39:36

标签: javascript locale

我遇到了将数字转换为用户首选项字符串的情况

conv = num.toLocaleString('de-DE', { maximumFractionDigits: 20 })

由于我有实数,我想限制最多20个小数点。 但是上面的代码并没有给我想要的输出。

有人可以建议如何实现相同目标吗?

谢谢, 努布尔

1 个答案:

答案 0 :(得分:1)

问题在于浮点数在处理器中的存储方式。参见Floating Point arithmeticDouble-precision floating-point format

数字中不能包含20个有效的小数位。他们将在最后被截断

查看示例:
num = 0.0000000000000000123456;将显示为"0,00000000000000001235"
num = 1.0000000000000000123456;将显示为"1,00000000000000000000"

如果您想强制20位小数位数,请使用以下选项对象:

{minimumFractionDigits: 20, maximumFractionDigits: 20}