表达式 Java 中的运算符优先级:11%2*7/(3+2)?

Operator precedence in Java for the expression: 11%2*7/(3+2)?

根据我的理解,根据 PEDMAS,上述表达式的运算符优先级应为 1 但如果我将整个表达式声明为浮点数,则答案为 1.4.

那么,正确答案是 1 还是 1.4?

11%2*7/(3+2)? 

 1. (3+2) = 5
 2. 11%2 = 1
 3. Putting all together = 1*7/5 = 1 ans

如果你这样做 (float)11%2...,你将 11 转换为浮点数,并使用浮点模函数得到 11.0%2,returns 1.0。然后 1.0 导致乘法为 1.0*7 which returns 7.0 这导致我们使用浮点除法 which returns 1.4.

如果你想要1(整数),你需要使用(float)(11%2...)将整个结果转换为浮点数

So, which is the right answer 1 or 1.4?

他们两个。你引用的两个案例是不同的表达方式.

作为程序员,你写你需要的表达式。