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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |