This week's book giveaway is in the Open Source forum. We're giving away four copies of RabbitMQ in Depth and have Gavin Roy on-line! See this thread for details.

I have a problem, I studied using the Khalid Mughal book. This book says that the Math.round() function returns an int.

However, while testing myself on MindQ's mock exam, I came across a question which says, What method(s) from the java.lang.Math class might method() be if the statement method( -4.4 ) == -4; is true ?

The options were : round(), min(), trunc(), abs(), floor(), ceil().

I marked round() according to what Khalid's book says. But the answer is round(), floor() and ceil() !!

Math.floor(-4.4) returns -5.0, which the '==' operator will narrowly convert to int when compared against -4 (and will result in a false for the comparison).

Math.ceil(-4.4) returns -4.0, which will return true when compared against -4.

Math.round(-4.4) returns (long) -4, which will be true for the comparison.*

. . . will output . . .

Math.ceil(-4.4))==-4 is true -5.0 Math.round(-4.4))==-4 is true

*Correction: -4.4 is a double, so, Math.round(-4.4) returns the 64-bit long integer instead of the int type integer. [ September 11, 2005: Message edited by: michael clark ]

If the argument is negative infinity or any value less than or equal to the value of Integer.MIN_VALUE, the result is equal to the value of Integer.MIN_VALUE.

If the argument is positive infinity or any value greater than or equal to the value of Integer.MAX_VALUE, the result is equal to the value of Integer.MAX_VALUE.

Sandy

Regards<br />Sandy<br />[SCJP 5.0 - 75%]<br />[SCWCD 1.4 - 85%]<br />------------------<br />Tiger, Tiger burning bright,<br />Like a geek who works all night,<br />What new-fangled bit or byte,<br />Could ease the hacker's weary plight?