Though it is printing true but I am surprised with the answer.In my opinion it should be false because dividing 1.0f/3.0f will give a resulting float with somevalue like .33333... Again multiplying this number by 3 will not print 1..(will be slightly less than one).
~Sanjeev Singh<br />SCJP 1.5
Joined: Nov 15, 2006
First I apologize for the explaination.....answer is correct but explaination is not satisfiable...I'm apologize all for that.
Mathematically you are right........Sanjeev, but if you print(f*3.0F) its printing 1.0 why because as of Java 5 our JVM is considering 0.99999999 as 1.0 so when we devide 1.0 by 3.0 it will be 0.33333333..... when again we multiply this factor by 3.0 then the answer is 0.99999999... Mathematically we can't prdict the no.of 9's but our JVM is having limitation of memory. Thats why its considering it 1.0 and printing true.......!
This is how I think about it...any other views about it.. always welcome....!
Thanks and Regards Manjunath
AJAY JOSE PAUL
Joined: Nov 11, 2006
You topic title: "Doubt" seems to imply you have a question? What exactly is your question? On my system with Java 5.0 the program prints "true".
@Barry Gaunt ::: I compiled and ran the proggy... it prints true.
According to me the output should b false.
I wanted to know the reason for printing true as the output.
Joined: Nov 01, 2006
Posted by Manjunath as of Java 5 our JVM is considering 0.99999999 as 1.0
Compiling and running code with jdk 1.4 is also giving the answer as true.