Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Math.Round

 
gayatri ganesh
Greenhorn
Posts: 28
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
I have a doubt in the following question.

What is the output of following
{
float f4 = -5.5f;
float f5 = 5.5f;
float f6 = -5.49f;
float f7 = 5.49f;
System.out.println("Round f4 is " + Math.round(f4));
System.out.println("Round f5 is " + Math.round(f5));
System.out.println("Round f6 is " + Math.round(f6));
System.out.println("Round f7 is " + Math.round(f7));
}
a)Round f4 is -6
Round f5 is 6
Round f6 is -5
Round f7 is 5

b)Round f4 is -5
Round f5 is 6
Round f6 is -5
Round f7 is 5

Correct answer is b)

I understood the answer for f5,f6 and f7 but isn't f4 = -4 ? Please explain. Thank you
 
Jay Pawar
Ranch Hand
Posts: 411
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Original Post Gayatri Ganesh
I understood the answer for f5,f6 and f7 but isn't f4 = -4 ? Please explain


Math.round(-5.5f) is internally calculated as (int)Math.floor(-5.5 + 0.5 ) which is (int)Math.floor(-5.0) = -5

Hence the answer is -5



I would say, if you know how to calculate Math.floor function correctly then Math.round() should be very easy. Math.round(x) is equivalent to
(int)Math.floor(x + 0.5) if x is float.
(long)Math.floor(x + 0.5) if x is double.



Hope this helps you...
[ January 18, 2005: Message edited by: Jay Pawar ]
 
marc weber
Sheriff
Posts: 11343
Java Mac Safari
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Java's API documentation is an excellent resource...

http://java.sun.com/j2se/1.5.0/docs/api/index.html

Find the Math class, then check the documentation for the round methods.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic