Java 奇异指数误差

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.

所以,我有这个代码,它对前4个数字很有效,但是它给出了一个错误的数字,有什么问题吗?我知道我也可以使用Math.pow,但我想先自己尝试一下

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远远超过9039207968

int32最多只能存储2147483647,通常使用java.math.biginger,因为在这个速率下,long可以很快结束