How to safely and reasonably convert a float or double to string or char array?

I would be inclined to extract the existing code from the existing printf(), perhaps even using the existing standard formatting:
ftostr(s, "%6.3f", x);

The arguments against printf() are mostly based on how much room is used by the functions/formats that you DONT use. Extracting individual funcs solves that.

no one wants anyone to re-write long-proven complex asm code that was probably only written in asm in the first place because the C equiv was too big...