【问题标题】:Javascript - How to squared a number?Javascript - 如何对数字求平方?
【发布时间】:2010-10-27 07:03:36
【问题描述】:

使用javascript函数

function squareIt(number) {
   return number * number;
}

当给定数字 4294967296 时,函数返回 18446744073709552000

每个人都知道真正的答案是 18446744073709551616 :-)

我想这与我的 32 位机器上的舍入有关。但是,这个脚本会在 64 位机器上给出正确的答案吗?有人试过吗?

【问题讨论】:

    标签: javascript 32-bit


    【解决方案1】:

    这里还有一个基于 BigInteger.js 的示例。

    alert(bigInt(4294967296).square());
    <script src="https://cdnjs.cloudflare.com/ajax/libs/big-integer/1.6.40/BigInteger.min.js"></script>

    【讨论】:

      【解决方案2】:

      ChrisV-see this post。通过在浏览器 URL 文本框中直接键入以下 JavaScript,人们还可以更轻松地评估您的问题:

      javascript:4294967296*4294967296
      

      【讨论】:

        【解决方案3】:

        这个呢

        function squareIt(number){
        return Math.pow(number,2)
        }
        

        【讨论】:

        • 嗯,你有没有费心测试它?你会知道答案的。
        • 是的,它返回 18446744073709552000
        【解决方案4】:

        Javascript 在内部使用 64 位浮点算法进行数值计算 - 您看到的结果反映了这一点,并且无论底层架构如何都会发生。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-15
          • 1970-01-01
          • 1970-01-01
          • 2019-10-31
          • 2014-11-10
          • 1970-01-01
          相关资源
          最近更新 更多