Обычно для этих операций вы должны использовать функции ecvt, fcvt или gcvt:
/* gcvt example */
#include <stdio.h>
#include <stdlib.h>
main ()
{
char buffer [20];
gcvt (1365.249,6,buffer);
puts (buffer);
gcvt (1365.249,3,buffer);
puts (buffer);
return 0;
}
Output:
1365.25
1.37e+003
как функция:
void double_to_char(double f,char * buffer){
gcvt(f,10,buffer);
}