java计算61328*64917结果为负数,什么原因
答案:5 悬赏:50 手机版
解决时间 2021-04-04 11:27
- 提问者网友:绫月
- 2021-04-03 18:03
java计算61328*64917结果为负数,什么原因
最佳答案
- 五星知识达人网友:街头电车
- 2021-04-03 18:58
因为他超出了int的最大范围,int无法保存这个大的数。
建议使用BigDecimal计算
如下:
BigDecimal bigDecimal = new BigDecimal(61328);
BigDecimal bigDecimal2 = new BigDecimal(64917);
BigDecimal multiply = bigDecimal.multiply(bigDecimal2);
long longValue = multiply.longValue();
建议使用BigDecimal计算
如下:
BigDecimal bigDecimal = new BigDecimal(61328);
BigDecimal bigDecimal2 = new BigDecimal(64917);
BigDecimal multiply = bigDecimal.multiply(bigDecimal2);
long longValue = multiply.longValue();
全部回答
- 1楼网友:duile
- 2021-04-03 22:28
你用什么类型存的?int ? 改为 long 好了
- 2楼网友:舍身薄凉客
- 2021-04-03 22:10
整形int的范围大概是在21亿~~~超过这个范围就发生溢出,建议可以看下java自带BigInteger类型的源代码,希望对你有帮助
- 3楼网友:几近狂妄
- 2021-04-03 20:43
是不是数据类型有关系。
- 4楼网友:一把行者刀
- 2021-04-03 20:03
Long a = 61328L;
Long b = 64917L;
Long c = a*b;
System.out.println(c);
Long b = 64917L;
Long c = a*b;
System.out.println(c);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |