代码之家  ›  专栏  ›  技术社区  ›  dimas

oracle sql中的自定义舍入逻辑

  •  1
  • dimas  · 技术社区  · 6 年前

    大家好,我正在尝试创建一个自定义逻辑,用于按照规则中的规定对小数进行四舍五入。

    该规则规定,值介于两者之间的任何十进制数。01至。05应该有。05值。介于之间的任何值。06至。09应等于。10

    例如

    1.05 => 1.05
    1.84 => 1.85
    1.06 => 1.10
    1.79 => 1.80
    

    我尝试使用oracle网站中指定的公式 here 。但它不起作用,请参见下面的代码

    select 
    round(1.05 * power(10,2) + .05) * power(10,-2) as Rounding1
    , round(1.84 * power(10,2) + .05) * power(10,-2) as Rounding2
    , round(1.06 * power(10,2) + .05) * power(10,-2) as Rounding3
    , round(1.79 * power(10,2) + .05) * power(10,-2) as Rounding4
    from dual;
    

    关于如何实现这一点,有什么想法吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Aravindhan R    6 年前

    我认为这种逻辑符合你的要求:

    select ceil(num * 20) / 20 from tablename