我已经使用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/