您的位置:首页技术文章
文章详情页

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

【字号: 日期:2024-01-09 08:33:47浏览:16作者:猪猪

问题描述

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.0int c = (int)Math.pow(23,29)%91;System.out.println(c);输出 36

然而这都不是正确答案

正确取余后的值是4才对

问题解答

回答1:

精度不够,23 ^ 29是个40位十进制数,

double只有15位有效数字,根本表达不了末尾的准确数值

int最大值只有10位,这么赋值早就溢出了

回答2:

double是浮点数,你这个问题最好使用BigInteger来解决。

标签: java