
New to oracle. I do not get the concept of round function. It seems to be silly.
select round(50.989, 2) from dual ;
gives the result as 100.
select round(50.989, 1) from dual;
gives the result as 50.
I think I didn't understand the definition properly.
When I give select round(12.989, 1) from dual;
gives 10.
could somone kindly explain this.
thank you
nath


Let me try to explain this:
In the round function, if you give a posivite integer n, it rounds n places to the right of the decimal place.
SQL> select round (1.11, 1) from dual;
ROUND(1.11,1)

1.1
SQL> select round(1.16, 1) from dual;
ROUND(1.16,1)

1.2
If you give 0, it rounds to 0 places.
SQL> select round(1.500000000001,0) from dual;
ROUND(1.500000000001,0)

2
The next higher integer for 1.500000000001 with no decimal places is 2.
If you give negative values, it starts rounding the left hand side of the decimal, that is
SQL> select round(155.001, 1) from dual;
ROUND(155.001,1)

160
Since we use 10 based number system, for 1 anything over the 5 mark becomes next higher 10. For 2, anything over 51 becomes next 100;
SQL> select round(150.001, 2) from dual;
ROUND(150.001,2)

200
for 3, anything over 500 becomes, next 1000 etc., This why if you try to round 155 to 3 digits you will get zero.
SQL> select round(155.001, 3) from dual;
ROUND(155.001,3)

0