Dokumentace ukazuje použitý algoritmus :
Takže byste mohli upravit kladnou, nenulovou verzi:
FLOOR(n * POWER(10, integer) + 0.4) * POWER(10, -integer)
^
např. pro pevné zaokrouhlení a prozatím ignorování nul/záporných bodů:
with t (my_number) as (
select 3.674 from dual
union all select 3.675 from dual
union all select 3.676 from dual
)
select my_number,
floor(my_number * power(10, 2) + 0.4) * power(10, -2) as round_on_number
from t;
MY_NUMBER ROUND_ON_NUMBER
---------- ---------------
3.674 3.67
3.675 3.67
3.676 3.68
Můžete zahrnout nulu/zápor prostřednictvím výrazu velkých a malých písmen; nebo napište svou vlastní funkci, abyste ji zvládli přehledněji.