Oracle ROUND 函数默认“向上舍入”:
select 3.674 my_number,
round(3.674,2) round_on_number
from dual
union
select 3.675 my_number,
round(3.675,2) round_on_number
from dual
union
select 3.676 my_number,
round(3.676,2) round_on_number
from dual
;
MY_NUMBER ROUND_ON_NUMBER
---------- ---------------
3,674 3,67
3,675 3,68
3,676 3,68
我需要四舍五入“一半”,这本质上意味着我应该得到以下结果:
MY_NUMBER EXPECTED_ROUND_ON_NUMBER
---------- ------------------------
3,674 3,67
3,675 3,67
3,676 3,68
它应该很快,因为我需要对数百万个项目执行此操作。
我可能可以检测到数字是否以“5”结尾,并在这种情况下截断最后一位数字,否则四舍五入,但我感觉这效率很低(?)
谢谢 !
大卫