parseInt方法的问题

时间:2015-09-25 07:11:29

标签: javascript

parseInt函数使我的数字松散精度:最后两位数字从18变为20:

console.log(parseInt('76561198236425518', 10));
  

76561198236425520

为什么会发生这种情况以及如何解决?

1 个答案:

答案 0 :(得分:0)

数字存储为具有53位尾数的浮点数。这限制了你可以拥有的精度低于你那个数量的精度,因此它必须舍入到它可以代表的最近的浮点数。

表示数字N所需的实际位数可以计算为大约log2N,或者,如果您正在使用无法计算对数的计算器二,logxN/logx2

log276561198236425518的值,大致为56.1,表明它需要大约56位,这就是为什么它不接近结尾的原因。