Float.valueOf("123456.123");
The result Float value is automatically rounded to 123456.00.
In order to preserve the precision, I need to use Double.
Double.valueOf("123456.123");
BTW, my jdk version is 1.6.
Float.valueOf("123456.123");
Double.valueOf("123456.123");