javascript - 我们可以用来确保 Javascript 准确精度的最大数字?

标签 javascript

我一直没能找到一个直接的答案。我检查了规范,但没有看到任何定义精度的内容。

Number.MAX_VALUE
    1.7976931348623157e+308
a = 9007199254740992
a == a-1
    false
a+1
    9007199254740992
a+2
    9007199254740994
a*a
    8.112963841460668e+31   
a*a == ((a*a)-1)
    true
a*a == ((a*a)*a)
    false

最佳答案

Math.pow( 2, 53 )

是最大的整数。之后你开始失去整数的精度。

你可以找到它here :

Significand precision: 53 bits (52 explicitly stored)

至于“小数”,无论其大小如何,您永远不能指望得到准确的结果。

0.1 + 0.2 === 0.30000000000000004

顺便说一句,如果您正在寻找解决上述问题的方法:

function round(num) {
     return Math.round( num * 1e9 ) / 1e9;
}

round(0.1 + 0.2) === 0.3

关于javascript - 我们可以用来确保 Javascript 准确精度的最大数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892461/

相关文章:

javascript - 从 CDN 加载 JavaScript 库可以,但不能从本地文件加载

javascript - 无法为访问函数创建 javaScript 算法

javascript - Google map 和 Fusion 表 - 加载错误

javascript - 获取上一个/下一个 |使用 list.js 的第一个/最后一个按钮

javascript - 正则表达式从字符串中提取重复序列

javascript - 为元素内的复选框创建标签

javascript - 删除屏幕尺寸上的 esc 功能

javascript - 计算杠铃获得特定重量所需的重量

javascript - FCKEditor - 如何制作一个简单的插件?

javascript - 如何让模板助手变得非响应式(Reactive)?