如何在SQL中将小数舍入到最接近的偶数?

时间:2010-09-13 16:38:52

标签: sql oracle10g rounding

我需要在Oracle 10g上的sql查询中将小数舍入到最接近的偶数。 如果数字是偶数,则应返回。如果数字是奇数,则应返回下一个偶数。

这就是我想要的: 8.05应返回8.06,3.48应返回3.48

我该怎么做?

谢谢, 安德鲁

2 个答案:

答案 0 :(得分:7)

如果你想圆对于第二个十进制偶数位,您可以执行以下操作:select round(3.43 / 0.02, 0) * 0.02;将产生3.44

可以根据需要进行扩展:例如:第一个十进制数字是3的倍数:select round(3.5452234 / 0.3, 0) * 0.3;将给出3.6

答案 1 :(得分:0)

我真的不明白错误地舍入数字的逻辑。另外,这不容易,因为你没有处理整数。但是,如果你真的需要,我会建议遵循这样的伪代码。

if ((num / 2) * 2 = num) {
    return // number is even
    }
else {
    num = num + .01 // this assumes you are only working with two decimal points.
}