Java 奇异指数误差
所以,我有这个代码,它对前4个数字很有效,但是它给出了一个错误的数字,有什么问题吗?我知道我也可以使用Math.pow,但我想先自己尝试一下Java 奇异指数误差,java,exponential,exponent,Java,Exponential,Exponent,所以,我有这个代码,它对前4个数字很有效,但是它给出了一个错误的数字,有什么问题吗?我知道我也可以使用Math.pow,但我想先自己尝试一下 public static void main(String [] args){ int number = 98; int result = number; int exponentt = 5; int exponent = exponentt--; System.out.
public static void main(String [] args){
int number = 98;
int result = number;
int exponentt = 5;
int exponent = exponentt--;
System.out.println(Math.pow(number, exponent));
for (int i = 0; i < exponentt ;i++) {
result = result * number;
System.out.println(result );
}
}
控制台:
9604
92236816
449273376将整数切换为长整数,您将得到正确的结果
public static void main(String [] args){
**long** number = 98;
**long** result = number;
int exponentt = 5;
int exponent = exponentt--;
System.out.println(Math.pow(number, exponent));
for (int i = 0; i < exponentt ;i++) {
result = result * number;
System.out.println(result );
}
}
它超出了int的范围,给了你奇怪的结果。int最多只能存储2147483647-98^4远远超过9039207968int32最多只能存储2147483647,通常使用java.math.biginger,因为在这个速率下,long可以很快结束