convirtiendo cadena a una variable doble en C

He escrito el siguiente código ... Debería convertir una cadena como "88" a doble valor 88 e imprimirla

<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>

Pero siempre imprime 0 ... Pero cuando cambio el tipo de ret a int ... funciona bien ... cuando el tipo es flotante o doble, imprime cero ... ¿por qué obtengo estos resultados ambiguos?

Respuestas a la pregunta(7)

Su respuesta a la pregunta