我对输出如何给我7.5感到非常困惑。我理解它输出double的部分,但不知道为什么是7.5。我试着按照我所知的规则自己做,我得了6分。如果有人能帮助我了解java做什么来得到答案7.5
public class pc1 {
public static void main(String[] args) {
System.out.println((double) (10 / 4) * (int) 10.0 / 4 + (double) 10 / 4);
}
}
以下是如何对它们进行分组和解释。
System.out.println((double) (10 / 4) * (int) 10.0 / 4 + (double) 10 / 4);
打印
7.5
- 乘法和除法在加减法之前从左到右计算
(double) (10/4) * 10/4;
- 所以第一个10/4 = 2(整数数学)然后转换为2.0
- 然后乘以10得到20.0
- 则20.0除以4得到5.0
(double) 10/4);
- 10被转换为double得到10.0所以10.0/4 = 2.5
现在添加结果(5.0和2.5)得到7.5
逐一计算:
- 10/4 == 2(因为整数除法)
- (double)2 == 2.0
- (int)10.0 == 10
- 2.0*10 == 20.0
- 20.0/4 = 5.0(+前左)
- (双)10 == 10.0
- 10.0/4 == 2.5(+后右侧)
- 5.0 + 2.5 = 7.5