Evils of floating point numbers. The "float" data type is 32 bits, and the way it stores the data means it cannot represent 123.1234 (and many other numbers) exactly. For 123.1234, your choices seem to be 123.1233978271484 or 123.123405456543...
Instead of floatValue, use doubleValue. That will give you better results (64 bits precision).
Ali