sprintf(buffer,"floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);

warum sollte das nicht gehen?

hier ist das komma falsch, muss ein punkt sein:
result*=2,56/1024;
du kannst natürlich auch mit der kirch ums dorf:
Code:
void LcdDouble(double d) 
{ 
  unsigned long i,z,l=d; 
  char b=0; 
  if(d==0){printf("0");return;} 
  else if(d<0){printf("-");l*=-1;} 

  // ganzzahlanteil
  for(i=1000000000;;i/=10) 
  { 
    if((z=l/i)>0)b=1; 
    if(b)printf("%c",'0'+z); 
    l-=z*i; 
    if(i==1)break; 
  } 

  // nachkommastellen
  printf(",");
  l=(long)((d-(long)d)*10000000);
  for(i=1000000;;i/=10) 
  { 
    if((z=l/i)>0)b=1; 
    if(b)printf("%c",'0'+z); 
    l-=z*i; 
    if(i==1)break; 
  } 
}
die funktion hat natürlich ihre grenzen. sehr kleine oder sehr grosse floats werden nicht korrekt dargestellt. ist nur als kleines beispiel zu betrachten.

gruesse