[...]但它看起来不正确,因为小数点刚刚下降.我在这里纠正吗?
正确,转换为int只是丢弃小数部分(即向零舍入).
虽然std::ceil()来自cmath将适用于您的问题中的所有示例,但问题并未指定负值所需的行为.例如应该-5.9轮到-6.0或-5.0?ceil(-5.9)= 5.0,这可能不是你想要的.如果你想要-6.0,那么你需要楼层(-5.9),所以代码必须是:
round = f > 0 ? std::ceil(f) : std::floor(f) ;
Run Code Online (Sandbox Code Playgroud)
现在的问题是,你是否被舍入了为小区()呢,或者说舍入远离零(最高的幅度,而不是在最高值)上面的代码呢?
| 归档时间: |
|
| 查看次数: |
2147 次 |
| 最近记录: |