题
使用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>
不隶属于 StackOverflow