Converting a string to a numeric value shouldn't generate garbage unless really needed.
The calling functions can have a buffer it passes to getFloatString and if it isn't long enough getFloatStrings can reallocate.