integer 3 will be converted to double 3.0 before comparison. Though all doubles and float values cannot always be represented accurately, but whole numbers are usually represented accurately hence comparison will be true
They are not the same. As i told you not all float and double values can be represented accurately
You will see the actual values and know why they are not equal.
.20f is precesion of 20 digits after decimal points
Same, why do you think it would be different. Think youself if they were different then you cannot rely on floating point calculations at all. The calculations can be different between two compilers for the same precision if they use different floating point Standard
see this for more information