四舍五入的数学函数

时间:2019-05-09 15:21:01

标签: c++ arduino

(rounding/=10.0;)是什么意思?为什么会有斜线?

2 个答案:

答案 0 :(得分:6)

rounding /= 10.0;的意思是:

  1. rounding转换为double(如果尚未转换为doublelong double
  2. 将其除以double 10.0,
  3. ,然后将商分配回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)); 的优先级也与=相同,因此与

相同

/=