JavaScript - while循环 - 奇数指数

时间:2018-05-01 10:57:47

标签: javascript while-loop exponentiation

我发现JavaScript取幂有问题而循环代码:



var x = Number(prompt("X:"));
var y = Number(prompt("Y:"));
var count = 1;
var power = 1;
while(count <= y){
	power = power * x;
	console.log (x + " to the power of " + count + " is: " + power);
	count++;
}
&#13;
&#13;
&#13; 这是简单的数学公式X ^ Y. 在X = 5且Y = 25的情况下,它一直顺利到Y = 23。看起来X奇数存在一些问题。例如。 X = 3且Y = 35。 Y = 34时结果错误。缺少&#34; 1&#34;在乘法期间。有人可以解释它为什么会发生吗?

1 个答案:

答案 0 :(得分:0)

你最了解js中的isSafeInteger

  <33> 33的力量是:5559060566555523

     

3的34的力量是:16677181699666568

     

3到35的幂是:50031545098999704

console.log(
  Number.isSafeInteger(5559060566555523),
  Number.isSafeInteger(16677181699666568),
  Number.isSafeInteger(50031545098999704)
)

  

安全整数是

的整数      

可以精确地表示为IEEE-754双精度数,并且   其IEEE-754表示不能是舍入任何其他整数以适合IEEE-754表示的结果。

     

例如,2 ^ 53 - 1是一个安全整数:它可以精确表示,并且在任何IEEE-754舍入模式下都没有其它整数轮。相比之下,2 ^ 53不是一个安全的整数:它可以在IEEE-754中精确表示,但是整数2 ^ 53 + 1不能直接在IEEE-754中表示,而是在圆形下舍入到2 ^ 53最接近和舍入为零的舍入。安全整数由 - (2 ^ 53 - 1)包括 - 2 ^ 53 - 1(±9007199254740991或±9,007,199,254,740,991)的所有整数组成。