Help understanding round function

# Thread: Help understanding round function

1. Junior Member
Join Date
Jun 2001
Posts
33
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

2. 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

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•