Delta_G:
Floats aren't accurate past 6 or 7 places. The String constructor is accurately handling the float variable, but the float variable isn't accurately holding the number you're trying to put in.
Incorrect. Floats are accurate up to ~7 non-zero places. All leading zeros will be dropped after exponential scaling. In other words you can have as many leading zeros before first non-zero digit and still have ~7 digits after them. I intentionally used four leading zeros in my example. The number 1234567e-10 should be correctly represented by a float variable and convert to 0.000123456, which, as you can see in the example above, is not the case. It seems that the conversion that's taking place in the the constructor incorrectly takes first six decimal places even if they are zeros and then does something funky with the last digit.