java计算61328*64917结果为负数,什么原因

 我来答
嘴多脸脸子甜
推荐于2018-03-30 · TA获得超过220个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:123万
展开全部
因为他超出了int的最大范围,int无法保存这个大的数。
建议使用BigDecimal计算
如下:
BigDecimal bigDecimal = new BigDecimal(61328);
BigDecimal bigDecimal2 = new BigDecimal(64917);
BigDecimal multiply = bigDecimal.multiply(bigDecimal2);
long longValue = multiply.longValue();
jfamyysys
2012-10-31
知道答主
回答量:2
采纳率:0%
帮助的人:3055
展开全部
整形int的范围大概是在21亿~~~超过这个范围就发生溢出,建议可以看下java自带BigInteger类型的源代码,希望对你有帮助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zxyqq070
2012-10-31
知道答主
回答量:76
采纳率:0%
帮助的人:11.4万
展开全部
Long a = 61328L;
Long b = 64917L;
Long c = a*b;
System.out.println(c);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
忆卡忆卡
2012-10-31
知道答主
回答量:10
采纳率:0%
帮助的人:3.7万
展开全部
你用什么类型存的?int ? 改为 long 好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hpyhgz
2012-10-31
知道答主
回答量:50
采纳率:0%
帮助的人:23.6万
展开全部
是不是数据类型有关系。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式