parseInt方法的问题

Problems with parseInt method

本文关键字:问题 方法 parseInt      更新时间:2023-09-26

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

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

76561198236425520

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

数字存储为53位尾数的浮点数。这限制了你可以拥有的精度小于你自己的数字,因此它必须四舍五入到它所能表示的最接近的浮点数。

表示数字N所需的实际位数可以计算为log2N,或者,如果您使用的计算器不能计算以2为底的对数,则可以计算为logxN/logx2

log276561198236425518的值,大致是56.1,显示它需要大约56位,这就是为什么它不是精确地接近结尾的原因。