The problem is simple:
float f1 = Float.parseFloat("41.975779")
//Value for f1 is 41.97578 -> An error of 1ppm
And even worse!!
float f2 = Float.parseFloat("41.975645")
//Value for f2 is 41.975643 -> An error of 2ppm
It doesn't matter if I use Float.parseFloat or Float.valueOf, they both give the same result.
Note: This problem occurs me when programing in android, I didn't try it in pure-java but I assume will be the same result.