Konvertieren eines Strings in eine doppelte Variable in C

Ich habe den folgenden Code geschrieben ... Er sollte eine Zeichenfolge wie "88" in den doppelten Wert 88 konvertieren und ausdrucken

<code>void convertType(char* value)
{
   int i = 0;
   char ch;
   double ret = 0;
   while((ch = value[i] )!= '\0')
   {
      ret = ret*10 +(ch - '0');
      ++i;
   }
   printf("%d",ret);//or %f..what is the control string for double?
}



//input string :88
</code>

Aber es gibt immer 0 aus ... Aber wenn ich den Typ von ret in int ändere ... funktioniert es gut ... wenn der Typ float oder double ist, gibt es Null aus ... also warum erhalte ich diese mehrdeutigen Ergebnisse?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage