round up with decimals  [ 795 views ]

Goal: to create a function to round up numbers with decimals

We need to round up every numbers for a catalog view. May be with decimals or without.

CREATE OR REPLACE FUNCTION Roundup(p_number IN NUMBER, 
                                   p_pos IN NUMBER DEFAULT 0) RETURN NUMBER IS
--> 1.00  -  2009.03.09.  -  init version
  l_result NUMBER;
BEGIN
  l_result := ROUND(p_number, p_pos);
  IF (l_result < p_number) THEN 
    l_result := l_result + (1/POWER(10,p_pos));
  END IF;
  RETURN l_result;
END;

The result:

select roundup(10.123,0) from dual; --> 11
select roundup(10.123,1) from dual; --> 10.2
select roundup(10.123,2) from dual; --> 10.13
select roundup(10.123,3) from dual; --> 10.123
#sidebar a { color:#fff; } #sidebar ul ul li { color: #DEF585; } #sidebar h2 { color: #fff; } #sidebar ul p, #sidebar ul select { color: #BEDDBE; } #backfly { background: url(images/golfBallWallPaper.jpg) left bottom fixed repeat-x #65a51d; }