考虑以下两行代码:
System.out.println((1 + (1 - 1)) / 2);
System.out.println(1 + (1 - 1) / 2);
这是我得到的输出:
0
1
为什么会这样? Java算术是否遵循PEMDAS规则?
答案 0 :(得分:2)
我没有看到问题,您的代码确实遵循PEMDAS。唯一的问题是你没有得到0.5因为你正在使用整数除法。试试这个:
System.out.println((1 + (1 - 1)) / 2.0);
System.out.println(1 + (1 - 1) / 2.0);
答案 1 :(得分:1)
是的,它遵循PEMDAS规则,它也会截断答案(在小数点后切除数字而不进行舍入)。
答案 2 :(得分:0)
第一个只是(1 + 0)/2 = 1/2
,因为你正在处理整数,所以它会给你0
。
第二个是1 + 0/2 = 1 + 0 = 1
,它会为您提供1
。