Java:带括号的整数相加
Java: Addition of integers with parentheses
考虑以下两行代码:
System.out.println((1 + (1 - 1)) / 2);
System.out.println(1 + (1 - 1) / 2);
这是我得到的输出:
0
1
为什么会这样? Java 算法是否遵循 PEMDAS 规则?
我没有发现问题,您的代码确实遵循 PEMDAS。唯一的问题是你没有得到 0.5 因为你使用的是整数除法。试试这个:
System.out.println((1 + (1 - 1)) / 2.0);
System.out.println(1 + (1 - 1) / 2.0);
第一个只是 (1 + 0)/2 = 1/2
,它给你 0
,因为你使用的是整数。
第二个是 1 + 0/2 = 1 + 0 = 1
,它给你 1
。
是的,它遵循 PEMDAS 规则,它还会截断答案(在不四舍五入的情况下截断小数点后的数字)。
考虑以下两行代码:
System.out.println((1 + (1 - 1)) / 2);
System.out.println(1 + (1 - 1) / 2);
这是我得到的输出:
0
1
为什么会这样? Java 算法是否遵循 PEMDAS 规则?
我没有发现问题,您的代码确实遵循 PEMDAS。唯一的问题是你没有得到 0.5 因为你使用的是整数除法。试试这个:
System.out.println((1 + (1 - 1)) / 2.0);
System.out.println(1 + (1 - 1) / 2.0);
第一个只是 (1 + 0)/2 = 1/2
,它给你 0
,因为你使用的是整数。
第二个是 1 + 0/2 = 1 + 0 = 1
,它给你 1
。
是的,它遵循 PEMDAS 规则,它还会截断答案(在不四舍五入的情况下截断小数点后的数字)。