Forums Register Login

Float Calculations...

+Pie Number of slices to send: Send
The following code will print 'false'.
float f = 1.0F/3.0F;
System.out.println( (f * 3.0F) == 1.0F );
Options :
1) True
2) False
Answer : false..
I feel it should be true because when 1 is divided by 3 it gives 0.33333....i.e 0.334 and when we multiply 0.334 by 3.000 we get 1.002....i.e 1
Hence it should be true..
Any Comments???
Sonir
+Pie Number of slices to send: Send
Hi
float numbers are stored differently inside JVM so they lose some precision .. that's why it is not equal.
CMIW
HTH
+Pie Number of slices to send: Send
hi,
but can we be sure of the answer "false"? because it's precision based and if we can't be sure of how much it would be exactly due to precision then we can't say "true" or "false".
how can we be sure?
regards
maulin.
+Pie Number of slices to send: Send
 

Originally posted by Maulin, Vasavada:
how can we be sure?


I think we use strictfp for that only.
any expert comment plz .
CMIW
[ January 20, 2002: Message edited by: ravish kumar ]
Evildoers! Eat my justice! And this tiny ad's justice too!
a bit of art, as a gift, the permaculture playing cards
https://gardener-gift.com


reply
reply
This thread has been viewed 586 times.
Similar Threads
Error with JQPlus Question
Hope you can help me
Floating Confusion
float & JQ+ -- VELU
What will this return
More...

All times above are in ranch (not your local) time.
The current ranch time is
Mar 28, 2024 12:43:01.