Perte precision double atof(char[11])

freec -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai une valeur dans un tableau de chars à convertir dans un double

tableauChars[11] = "33.8258705";


double valeurDouble = atof(tableauChars);

printf("%lf", valeurDouble); : 33.825871

mais le problème c'est que j'ai besoin de 705 pas 71...

2 réponses

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,
Le nombre a été certainement correctement converti (un double a 15 chiffres significatifs)
C'est la fonction printf qui par défaut tronque a 6 chiffres après la virgule
printf("%.9lf", valeurDouble); // 33.8258705
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

Pareil que Daflab.
En plus, ce n'est pas lf mais faut qu'il faut mettre dans le printf.
Et il ne faut pas oublier le char devant le tableau (probablement erreur de recopie)
0