在C ++错误中舍入数字-表达式必须具有整数或枚举类型

CJH*_*CJH 2 c++ enums

我有一个旨在将数字四舍五入到最接近的偶数的函数。

double round(double d)
{
  floor(d + 0.5);
  if(d % 2 == 1)
  {
      d = d-1;
  }
  return d;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试编译代码时,这将返回错误“表达式必须具有整数或枚举类型”。该错误是从与if语句相同的行报告的。

谁能指出我正确的方向?

djf*_*djf 5

%运算符仅为整数定义。您想使用fmod()函数

比尔正确实施round(double x)