为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

胡子哥哥 2019-03-01 11:14:48
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才对
查看完整描述

2 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

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

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

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

查看完整回答
反对 回复 2019-03-01
?
Qyouu

TA贡献1786条经验 获得超11个赞

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

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 497 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信