我希望能够对浮点数进行偏差舍入,要么总是向下取整,要么总是向上取整。代码中有一个特定的点需要这样做,程序的其余部分应该像往常一样四舍五入到最近的值。
例如,我想要将数字四舍五入到最接近1/10的倍数。最接近7/10的浮点数大约为0.69999998807,但最接近8/10的数大约为0.80000001192。当我舍入数字时,这些是我得到的两个结果。我宁愿按同一方式舍入它们。7/10应该四舍五入为0.70000004768,而8/10应该四舍五入为0.80000001192。
在这个例子中,我总是向上舍入,但有一些地方我想总是向下舍入。幸运的是,在每个这样的地方,我只涉及正值。
我正在使用的舍入代码是
例如,我想要将数字四舍五入到最接近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++编程。