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...