I have written the following code. It should convert a string like "88" to double value 88 and print it
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 %lf..
}
// input string :88
But it always prints 0. But when I change type of ret to int, it works fine. When the type is float or double, it  prints 0. So why am I getting these ambiguous results?
 
     
     
     
     
     
     
     
     
     
    