【问题标题】:Javascript parseFloat changes number [duplicate]Javascript parseFloat更改编号[重复]
【发布时间】:2013-11-13 17:33:33
【问题描述】:

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

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

【问题讨论】:

  • 最多 9007199254740992 不能用浮点数学表示所有数字。 (这可能不是正确的数字。)

标签: javascript numbers parsefloat


【解决方案1】:

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

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


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2023-03-20
    相关资源
    最近更新 更多