【发布时间】:2009-02-16 19:01:57
【问题描述】:
重复:round() for float in C++
我正在使用 VS2008 并且我已经包含了 math.h 但我仍然找不到一个圆形函数。存在吗?
我在 google 上看到一堆“添加 0.5 并转换为 int”的解决方案。这是最佳做法吗?
【问题讨论】:
-
加 0.5 并强制转换为 int 对负数不起作用。演员截断(所以它舍入 -4.5 到 -4)。因此,尝试使用此方法舍入 -5.0 将为您提供 -4 的输出。用 ceil() 替换演员表,它应该可以工作。但是,是的,您必须自己实现,或者在 3rd 方库中找到它。
-
呃,当然,假设我在上面写了 floor() 。要使用 ceil,您必须减去 0.5
-
@jalf 正如我在my answer to the dup 中指出的那样,滚动你自己的有很多问题,今天即使你坚持使用 C++03 提升也会是一个比尝试自己推出更好的建议。