(rounding/=10.0;)
是什么意思?为什么会有斜线?
答案 0 :(得分:6)
rounding /= 10.0;
的意思是:
rounding
转换为double
(如果尚未转换为double
或long double
)double
10.0,rounding
。如果rounding
是一个整数,它会舍去商的小数部分。如果rounding
是用户定义的类型,而operator/=
重载则可能意味着其他任何意义。
答案 1 :(得分:4)
它是division assignment operator。它是复合赋值运算符之一。
如果我们有
a /= b
然后这与表达式的行为完全相同
a = a / b
除了表达式a
仅被计算一次,并且对于不确定顺序的函数调用而言,它表现为单个操作。
所以在这种情况下
rounding/=10.0;
表示
rounding = rounding / 10.0;
它可能具有10.0
而不是10
的原因是integer division is avoided and floating point division is used instead。
要记住的另一件事是,/=
是一个lower precedence而不是/
的运算符,而/=
在{{1 }}从左到右操作。
这实际上意味着
/
将与
相同a /= 1 / 3 / 3;
鉴于a /= (1 / (3 / 3));
的优先级也与=
相同,因此与
相同
/=