gpt4 book ai didi

javascript - Math.pow() 没有给出准确的答案

转载 作者:行者123 更新时间:2023-12-04 01:08:28 25 4
gpt4 key购买 nike

我在我的项目中使用 Math.pow() 来计算指数值。

现在,对于 Math.pow(3,40) 等特定值,它返回 12157665459056929000

但是当我使用科学计算器尝试相同的值时,它返回 12157665459056928801

然后我尝试遍历循环直到指数值:

  function calculateExpo(base,power){
base = parseInt(base);
power = parseInt(power);
var output = 1;
gameObj.OutPutString = ''; //base + '^' + power + ' = ';
for(var i=0;i<power;i++){
output *= base;
gameObj.OutPutString += base + ' x ';
}
// to remove the last comma
gameObj.OutPutString = gameObj.OutPutString.substring(0,gameObj.OutPutString.lastIndexOf('x'));
gameObj.OutPutString += ' = ' + output;
return output;
}

这也会返回 12157665459056929000。JS 中对 Int 类型有什么限制吗?

最佳答案

此行为高度依赖于您运行此代码的平台。有趣的是,即使在同一台机器上,浏览器也很重要。

<script>
document.write(Math.pow(3,40));
</script>

在我的 64 位机器上结果如下:

IE11:12157665459056928000

FF25:12157665459056929000

CH31:12157665459056929000

Safari : 12157665459056929000

关于javascript - Math.pow() 没有给出准确的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20137839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com