Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!

# class Math's round method

payal bansal
Greenhorn
Posts: 23
Can anyone tell me the reason for this o/p???
float f4 = -5.5f;
float f7 = 5.5f;

System.out.println("Round f4 is " + Math.round(f4)); ------>-5
System.out.println("Round f7 is " + Math.round(f7)); -------->6

Cindy Glass
"The Hood"
Sheriff
Posts: 8521
Because it is rounding "up".
6 is the next higher integer than 5.5
-5 is the next higher integer than -5.5

js yang
Ranch Hand
Posts: 40
Keep in mind that .5 rounds up to the next highest inter. For example, 1.5 will round up to 2. So, what will -1.5 round up to? -1 and not -2 because you are rounding the number to the next highest integer--which is -1 and not -2.
oops...Cindy beat me by 2 minutes. What she said is correct.
[This message has been edited by js yang (edited June 10, 2001).]

payal bansal
Greenhorn
Posts: 23
Thanks for replying. But do tell me onething------
when float f4 = -5.6f;
Math.round(f4)-------->-6 Why??? Why don't it roundsup to -5?

payal bansal
Greenhorn
Posts: 23
Thanks for replying. But do tell me onething------
when float f4 = -5.6f;
Math.round(f4)-------->-6 Why??? Why don't it roundsup to -5?

Junilu Lacar
Bartender
Posts: 7319
45
Payal,
The round method will round to the nearest integer, which in the case of -5.6 would be -6. The rounding to -5 would apply for values of -5.5 to -5.0. On a number line:
<pre>
neg <--|--.--.--.--.--|--|--.--.--.--|----> pos
-6 -5.6 -5.5 -5.0
</pre>
Originally posted by payal bansal:
Thanks for replying. But do tell me onething------
when float f4 = -5.6f;
Math.round(f4)-------->-6 Why??? Why don't it roundsup to -5?