Win a copy of The Way of the Web Tester: A Beginner's Guide to Automating Tests this week in the Testing forum!

# Math.Round

gayatri ganesh
Greenhorn
Posts: 28
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

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