I found this on these forums a wee while ago.
The link to the original post is in the comment.
Works just fine.
Kudos to the person who wrote it.
/* If this works be sure to save it !!!!!!!! */
// It does and this is the guy who wrote it
// http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1164927646/8#8
///////////////////////////
char *ftoa(char *a, double f, int precision) {
long p[] = {0,10,100,1000,10000,100000,1000000,10000000,100000000};
char *ret = a;
long heiltal = (long)f;
itoa(heiltal, a, 10);
while (*a != '\0') a++;
*a++ = '.';
long desimal = abs((long)((f - heiltal) * p[precision]));
itoa(desimal, a, 10);
return ret;
}