Meaningless Drivel is fun!*
The moose likes Mock Exam Errata and the fly likes RHE Final #27 Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Certification » Mock Exam Errata
Bookmark "RHE Final #27" Watch "RHE Final #27" New topic
Author

RHE Final #27

Milena Khlabystova
Greenhorn

Joined: Apr 26, 2001
Posts: 9
In RHE Final Exam Q#27 asks:
What is the value of the following expression?
Math.round(Math.random() + 2.50001);
Possible answers are
a) 2
b) 3
c) It is impossible to say.
The correct answer in the book is b) and the following explanation is provided:
" Math.random() returns a double greater than or equal to 0.0 and less than 1.0. Math.random() + 2.50001 is a double greater than 2.5 and less than 3.5. Math.round() of any number between but not including 2.5 and 3.5 is 3."
However, what happens if Math.random() returns 0.999999? If I am not mistaken, 0.999999 + 2.50001 = 3.500009 which should round up to 4, not 3. Am I missing something?
Thanks,
Milena
Jane Griscti
Ranch Hand

Joined: Aug 30, 2000
Posts: 3141
Hi Milena,
I ran some code to test your theory

Guess what? Result = 4!
When your not sure of something, best teacher is the compiler
------------------
Jane Griscti
Sun Certified Programmer for the Java� 2 Platform


Jane Griscti
SCJP, Co-author Mike Meyers' Java 2 Certification Passport
Milena Khlabystova
Greenhorn

Joined: Apr 26, 2001
Posts: 9
Thanks, Jane.
That's what I thought... and ran the exact same code . I thought that may be I was missing something in Math.random() method and/or precision mechanism, but didn't really want to run a program for days in hope that Math.random() at some point returns 0.999999 (hmm... what's the probability of that?) and proves my point.
Thanks again,
Milena
Milena Khlabystova
Greenhorn

Joined: Apr 26, 2001
Posts: 9
Um... I obviously have to do more programming...
What I thought would be a day turned out to be a second.
Now I feel embarassed...
Jane Griscti
Ranch Hand

Joined: Aug 30, 2000
Posts: 3141
Hi Milena,
Don't be ... I ran the code as I did for the same reason; didn't want to wait for random to return .999999
Manfred Leonhardt
Ranch Hand

Joined: Jan 09, 2001
Posts: 1492
Hi Milena,
The problem has already been fixed in the errata. Make sure you check it before you go any further.
Click Here!
Regards,
Manfred.
 
Don't get me started about those stupid light bulbs.
 
subject: RHE Final #27
 
Similar Threads
Q: Math.round(Math.random() + 2.50001; ????
Math.random
RHE final exam question
RHE question re Math.round() and random()
Math.random() & .round() question from RHE