我想用偏差来舍入浮点数,要么总是向下,要么总是向上。代码中有一个特定点我需要这个,程序的其余部分应该像往常一样四舍五入到最接近的值。
例如,我想四舍五入到最接近的 1/10 倍数。最接近 7/10 的浮点数约为 0.69999998807,但最接近 8/10 的浮点数约为 0.80000001192。当我对数字进行四舍五入时,这是我得到的两个结果。我宁愿让它们以同样的方式四舍五入。7/10 应四舍五入为 0.70000004768,8/10 应四舍五入为 0.80000001192。
在这个例子中,我总是向上取整,但我有一些地方我想总是向下取整。幸运的是,我只在这些地方处理积极的价值观。
我用来四舍五入的线是floor(val * 100 + 0.5) / 100
. 我正在用 C++ 编程。