【问题标题】:Javascript stop auto rounding [duplicate]Javascript停止自动舍入[重复]
【发布时间】:2016-06-04 02:45:06
【问题描述】:

在Javascript中跟随数字

9999999999999999.99

转换成

10000000000000000

如何防止这种行为?

【问题讨论】:

  • 这是一个浮点精度问题...超过 9007199254740991 甚至整数开始表现异常...例如 9007199254740992 == 9007199254740993true

标签: javascript floating-point


【解决方案1】:

据我了解,处理此问题的最佳方法是用整数进行所有计算,然后除以 100(或根据需要加上尽可能多的零)。

如果您绝对需要使用小数,this post 包含许多对您有用的信息。

【讨论】:

  • 我不确定这在这种情况下会有所帮助。最接近 999999999999999999 的 IEEE 754 64 位二进制浮点数是 1000000000000000000。可以使用例如Java long,它有 64 位,但我认为这在 JavaScript 中不可用。
猜你喜欢
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
  • 2019-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
  • 1970-01-01
相关资源
最近更新 更多