2

我正在尝试将“9999999999999099”转换为javascript中的数字/浮点数。问题是 parseFloat(X) 和 Number(X) 都返回 9999999999999100。

这不是同一个数字。有谁知道为什么会发生这种情况以及如何避免它?提前致谢。

4

1 回答 1

4

这两个数字具有相同的浮点表示,因为浮点数只精确到一定程度。

如果这些数字是用于计算的,为什么你需要将它们转换为优于 1 的千万亿精度?如果这些值不用于计算†</sup>,请将它们保留为字符串。


†</sup> 不是为了计算,我的意思是电话号码或身份证号码。将电话号码相加或相乘是没有意义的。

于 2013-11-13T17:35:56.317 回答