J'ai écrit le code suivant .... Il devrait convertir une chaîne comme « 88 » à une double valeur 88 et l'imprimerchaîne conversion à une double variable en C
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
Mais il imprime toujours 0. ..Mais quand je change de type de ret en int ... ça marche bien ... quand le type est flottant ou double, il imprime zéro ... alors pourquoi suis-je obtenir des résultats ambigus?
Il n'y a pas une telle chose comme une chaîne en C de – Aidanc
' "% f"' 'ou "% g'"(ou' "% e" 'pour le format exponentiel) est utilisé à la fois pour '(float)' et '(double)'. – geekosaur
oubliez simplement le titre .. :) –