我遇到了将数字转换为用户首选项字符串的情况
conv = num.toLocaleString('de-DE', { maximumFractionDigits: 20 })
由于我有实数,我想限制最多20个小数点。 但是上面的代码并没有给我想要的输出。
有人可以建议如何实现相同目标吗?
谢谢, 努布尔
答案 0 :(得分:1)
问题在于浮点数在处理器中的存储方式。参见Floating Point arithmetic和Double-precision floating-point format。
数字中不能包含20个有效的小数位。他们将在最后被截断
查看示例:
num = 0.0000000000000000123456;
将显示为"0,00000000000000001235"
和
num = 1.0000000000000000123456;
将显示为"1,00000000000000000000"
如果您想强制20位小数位数,请使用以下选项对象:
{minimumFractionDigits: 20, maximumFractionDigits: 20}