如何使用cmath解释25 % 8 - 9 / 2 => -3.5
?
是吗:
25% 8 = 1 ;
-9/2 = -4.5
操作顺序:
1 - 4.5 = -3.5
答案 0 :(得分:3)
这不是关于操作的顺序,而是关于cmath。这是关于优先级,并且硬连线到C ++的语法。这里适用的基本规则是乘法和除法比加法和减法更紧密地绑定,因此像a*b+c*d
这样的表达式被视为写成(a*b)+(c*d)
。也就是说,a和b的乘积加到c和d的乘积中。 不意味着将c添加到a和b的乘积中,然后将结果乘以d。
要将此应用于此处的示例(请记住,%
只是另一种划分形式):
25 % 8 - 9 / 2
被视为已写入
(25 % 8) - (9 / 2)
25 % 8
的值为1,9 / 2
的值为4(不是4.5; 9和2是整数,因此这是整数除法)。结果是1 - 4
,即-3
。
答案 1 :(得分:0)
最简单的方法就是试试吧。除此之外,您可以查看优先级表,如this one,以查看运算符相对于彼此的位置。在这种情况下,由于%
运算符的优先级高于-
运算符,因此首先执行,然后执行/
,因为它也具有更高的优先级,因此您最终会使用{ {1}}作为等价表达式。由于这些都是整数,因此操作将在整数运算中进行,并给出(25 % 8) - (9 / 2)
的结果。
答案 2 :(得分:-1)
Cmath只声明一组函数来计算常见的数学运算和其他变换。运算符优先级独立于库,如cmath。
但您可能正在寻找运营商优先级表:Documentation
在你的例子中是这样的(25%8) - (9/2) =>的 -3 强>