Dyslexicbloke:
what I am wondering is if the line > char strBuffer[iIntegerLen + iMantissaLen]; <
would be better defined at some maximum length, 20 say given the length of a display line
and if so should it be static so that it isn't continually created and destroyed.
It doesn't take a lot to create the variable (an adjustment to the stack pointer). However I would be tempted to have a static variable here of the maximum expected size. That will use that memory all the time (even if you are not in the function) but you need that memory available anyway if the function is going to be called.
If you start doing this a lot (eg. another one for integers, etc.) then the creation inside the function will probably use less memory overall.