I have some C code performing high precision arithmetic compiled by gcc(gcc (GCC) 4.4.4 20100726 (Red Hat 4.4.4-13)).The final result of the calculation is a double which has a
A float has much less precision than a double; you lose about half the digits. So at best you'd be seeing the 622.0799 portion (rounded up to 622.0800). The difference you see is probably caused by the rounding mode in use.
Here are the actual numbers:
The internal representations are values generated using Java's Float.floatToIntBits
. You can also use Float.intBitsToFloat
to get back a floating-point number.