String constructor doesn't convert float type correctly

Like mentioned before, read the source code. My guess is the digit specified get used to generate digits after decimal.