我们可以用来确保Javascript中精确精度的最大数字

largest number we can use to assure exact precision in Javascript?

本文关键字:精度 数字 Javascript 确保 我们      更新时间:2023-09-26

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

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 )

是最大的整数。之后,您将开始失去整数的精度。

你可以在这里找到它:

有效精度:53 位(显式存储 52 位)

至于"小数",无论它们有多小或多大,您都永远不能依赖获得准确的结果。

0.1 + 0.2 === 0.30000000000000004

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

function round(num) {
     return Math.round( num * 1e9 ) / 1e9;
}
round(0.1 + 0.2) === 0.3