GeeCON Prague 2014*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Math.random() & .round() question from RHE Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Math.random() & .round() question from RHE" Watch "Math.random() & .round() question from RHE" New topic
Author

Math.random() & .round() question from RHE

Trevor Green
Ranch Hand

Joined: May 30, 2001
Posts: 44
A question from RHE is:
"What is the value of the following expression?
Math.round(Math.random() + 2.50001);"
Answers: A) 2; B) 3; C) It is impossible to say.
The answer is 3 (not "It is impossible to say").
This implies that you cannot get a result of 3.5
The implication of this is that Math.random() won't return .99999. I realise it's result is 0<=x<1.0. So is the result only to four decimal places (ie max value is 0.9999)?
Jyotsna Umesh
Ranch Hand

Joined: May 09, 2001
Posts: 94
Originally posted by Trevor Green:
A question from RHE is:
"What is the value of the following expression?
Math.round(Math.random() + 2.50001);"
Answers: A) 2; B) 3; C) It is impossible to say.
The answer is 3 (not "It is impossible to say").
This implies that you cannot get a result of 3.5
The implication of this is that Math.random() won't return .99999. I realise it's result is 0<=x<1.0. So is the result only to four decimal places (ie max value is 0.9999)?


Hi,
Math.random() results in double primitive type and you get result to approx. 12 decimal places but it will always be less than 1 so after adding to 2.50001 it will always be very close to 3 but never equal to 3, and Math.round() results in long primitive type so you get 3
I hope its clear
Jyotsna
Trevor Green
Ranch Hand

Joined: May 30, 2001
Posts: 44
If Math.random() returns a double to 12 decimal places, then 0.999999999999 is possible.
2.50001 + 0.99999999999 = 3.5000009999
This would round to 4. But the answer is B) 3.
Isn't it c) It is impossible to say, because, in this rarest of cases, it could also be 4, as well as 3?
anand raman
Ranch Hand

Joined: Jun 06, 2001
Posts: 66
i agree with you.
-Anand

[This message has been edited by anand raman (edited June 13, 2001).]
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Math.random() & .round() question from RHE