Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

class Math's round method

 
payal bansal
Greenhorn
Posts: 23
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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: 7483
50
Android Eclipse IDE IntelliJ IDE Java Linux Mac Scala Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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?

 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic