首页 > 解决方案 > Java 大数的数计算问题

问题描述

我是 Java 新手,当我试图在没有 Math.pow 方法的情况下找到数字的幂时,我意识到答案不正确。我想知道为什么?

public class Main() {

int x = 1919;
int y = x*x*x*x;

public static void main(String[] args) {

System.out.println(y);
}
}

输出:2043765249

但通常答案是:13561255518721

标签: javacalculation

解决方案


你使用 int 作为答案,你得到一个数字溢出。

使用 double 或 long 或 BigInteger for y,你会得到正确的答案。

public class Main {

    public static void main(String[] args) {
        System.out.println(Math.pow(1919, 4));
        System.out.println((double) 1919*1919*1919*1919);
    }
}

输出相同的值。


推荐阅读