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

10-10 09:04