Math.pow(23,29)%91 的结果为什么是错误的?

Math.pow(23,29)%91 的结果为什么是错误的?


public class T1 {

    public static void main(String[] args) {

        double c = Math.pow(23,29)%91.0;

        System.out.println(c);
    }

}

输出:28.0


        int c = (int)Math.pow(23,29)%91;

        System.out.println(c);

输出  36

然而这都不是正确答案

正确取余后的值是4才对

胡子哥哥
浏览 504回答 2
2回答

隔江千里

精度不够,23 ^ 29是个40位十进制数, double只有15位有效数字,根本表达不了末尾的准确数值 int最大值只有10位,这么赋值早就溢出了

Qyouu

double是浮点数,你这个问题最好使用BigInteger来解决。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java