【发布时间】:2013-06-06 18:09:11
【问题描述】:
我有一个函数,旨在将数字向下舍入到最接近的偶数。
double round(double d)
{
floor(d + 0.5);
if(d % 2 == 1)
{
d = d-1;
}
return d;
}
但是,当我尝试编译代码时,这会返回错误“表达式必须具有整数或枚举类型”。该错误与 if 语句在同一行报告。
谁能指出我正确的方向?
【问题讨论】:
-
你不能在双精度上使用
%(在 C++ 中) -
另外,
floor(d + 0.5);行没有任何作用。 -
除了@interjay 所说的,它确实做了一些事情——它返回一个值,你默默地扔掉了它。您需要将结果分配给变量。
-
对于输入 1(0、2 或其中之一?)、3(2、4 或其中之一?)、–1(0、–2 或任何一个或任何一个),您想要什么结果 [将不会被使用]) 和 –3(–2、–4 或者任何一个?)?