Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Numerical Math Functions
 

ROUND for negative value

"Next highest absolute value" for negative numbers rounds to the negative value of the appropriate absolute value of the negative number; e.g., ROUND(6.8) = 7 SQL> SQL> -- create demo table SQL> create table myTable(   2    id           NUMBER(2),   3    value        NUMBER(6,2)   4  )   5  / Table created. SQL> SQL> -- prepare data SQL> insert into myTable(ID,  value)values (1,9)   2  / 1 row created. SQL> insert into myTable(ID,  value)values (2,2.11)   2  / 1 row created. SQL> insert into myTable(ID,  value)values (3,3.44)   2  / 1 row created. SQL> insert into myTable(ID,  value)values (4,-4.21)   2  / 1 row created. SQL> insert into myTable(ID,  value)values (5,10)   2  / 1 row created. SQL> insert into myTable(ID,  value)values (6,3)   2  / 1 row created. SQL> insert into myTable(ID,  value)values (7,-5.88)   2  / 1 row created. SQL> insert into myTable(ID,  value)values (8,123.45)   2  / 1 row created. SQL> insert into myTable(ID,  value)values (9,98.23)   2  / 1 row created. SQL> SQL> select * from myTable   2  /         ID      VALUE ---------- ----------          1          9          2       2.11          3       3.44          4      -4.21          5         10          6          3          7      -5.88          8     123.45          9      98.23 9 rows selected. SQL> SQL> SELECT id, value,ROUND(value) FROM myTable   2  /         ID      VALUE ROUND(VALUE) ---------- ---------- ------------          1          9            9          2       2.11            2          3       3.44            3          4      -4.21           -4          5         10           10          6          3            3          7      -5.88           -6          8     123.45          123          9      98.23           98 9 rows selected. SQL> SQL> -- clean the table SQL> drop table myTable   2  / Table dropped. SQL>