Pourquoi ne pas utiliser la fonction atof() pour convertir une chaîne en double?
En cas de succès, la fonction atof() renvoie le nombre flottant converti en tant que valeur double. Si aucune conversion valide n'a pu être effectuée, la fonction renvoie zéro (0.0). Si la valeur convertie se trouve en dehors de la plage des valeurs représentables par un double, cela provoque un comportement indéfini.
Référence : http://www.cplusplus.com/reference/cstdlib/atof/
Utilisez plutôt la fonction strtod(), elle est plus robuste.
Essayez ce code :
#include
#include
#include
int main()
{
char s[100] = "4.0800";
printf("Valeur en virgule flottante : %4.8f\n",strtod(s,NULL));
return 0;
}
Vous obtiendrez la sortie suivante :
Valeur en virgule flottante : 4.08000000