在舍入错误之前,Javascript中的整数有多大?

时间:2014-05-28 20:14:06

标签: javascript floating-accuracy

以下代码:

function lookForMatches()
{
    for (var a=1;a<=2000;a++)
    {
        for (var b=1;b<=a;b++)
        {
            c=a*a*a+b*b*b;
            d=5*c*c;
            e=d-4;
            f=d+4;
            g=Math.floor(Math.sqrt(e))*Math.floor(Math.sqrt(e))
            h=Math.floor(Math.sqrt(f))*Math.floor(Math.sqrt(f))
            if (g==e||h==f)
                document.getElementById("matches").innerHTML+=c+" ";
        }
    }
    document.getElementById("matches").innerHTML+="Done."
}

应该检查正多维数据集总和序列中的斐波纳契数,但输出为:

  

2 5075441272 2976917960 7114243176完成。

我在Windows计算器中手动运行Fibonacci测试,虽然(5 * 5075441272 2 ±4)的平方根非常接近整数值,但它肯定一个整数!我甚至不确定数字5075441272实际上是多维数据集的有效总和。在不引入舍入错误的情况下Javascript中的整数值有多大?

1 个答案:

答案 0 :(得分:1)

最大尺寸为+/- 9007199254740992

ECMA SPEC

此外,这里也有答案: What is JavaScript's highest integer value that a Number can go to without losing precision?