加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 将int除以int并将结果存储为double 时出现意外的结果

发布时间:2020-12-15 04:09:42 所属栏目:Java 来源:网络整理
导读:参见英文答案 java program using int and double????????????????????????????????????7个 我有一个奇怪的问题. 这段代码只是将一个int除以另一个int,将结果存储在一个double变量中并打印出来: int a = 200;int b = 557;double divisionResult = a / b;Sys
参见英文答案 > java program using int and double????????????????????????????????????7个
我有一个奇怪的问题.

这段代码只是将一个int除以另一个int,将结果存储在一个double变量中并打印出来:

int a = 200;
int b = 557;

double divisionResult = a / b;

System.out.println("Result: " + divisionResult);

执行此代码后,输出为:

Result: 0

这很奇怪,因为200/557是0.3590664272890485

我注意到如果我在分界线上施放a和b加倍

double divisionResult = (double) a / (double) b;

它完美地运作.

为什么我必须将变量转换为double来获得真正的除法结果?

解决方法

因为在整数除法中,如果答案不是完整的整数,则小数点后的数字将被删除(整数除法产生整数值).

注意,您不必强制转换两个整数,只能转换一个,第二个将被隐式转换.

为什么在演员之后呢?

因为强制转换的优先级高于/.所以首先它投射,然后它分开.如果不是这样,你会得到0.0.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读