Если вы знаете, что значение ограничено определенным диапазоном, вы можете обойти встроенную функцию. Например:
if (v < 0){
strcat(s, "-"); s++;
v = -v;
}
double di = floor(v);
double frac = v - di;
int i = (int)di;
int f = (int)floor(frac * 1e10);
strcat(s, itoa(i)); s += strlen(s);
strcat(s, "."); s++;
strcat(s, itoa(f)); s += strlen(s);
но держу пари, у вас есть рыба побольше, чтобы жарить где-то еще.