konwertowanie łańcucha na podwójną zmienną w C

Napisałem następujący kod .... Powinien przekonwertować ciąg taki jak „88” na podwójną wartość 88 i wydrukować go

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

Ale zawsze drukuje 0 ... Ale kiedy zmieniam typ ret na int ... to działa dobrze ... gdy typ jest float lub double, drukuje zero ... więc dlaczego otrzymuję te niejednoznaczne wyniki?

questionAnswers(7)

yourAnswerToTheQuestion