使用JavaScript功能

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

当给出数字4294967296函数返回184446744073709552000被返回

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

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

有帮助吗?

解决方案

chrisv- 看到这篇文章. 。同样,人们可以通过将以下JavaScript直接键入浏览器URL文本框来评估您的问题:

javascript:4294967296*4294967296

其他提示

JavaScript在内部使用64位浮点算术进行数值计算 - 您看到的结果是对此的反映,无论基础架构如何,都会受到影响。

那这个呢

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

这是一个基于 biginteger.js.

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top