java计算61328*64917结果为负数,什么原因
展开全部
因为他超出了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();
展开全部
整形int的范围大概是在21亿~~~超过这个范围就发生溢出,建议可以看下java自带BigInteger类型的源代码,希望对你有帮助
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用什么类型存的?int ? 改为 long 好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询