Perte precision double atof(char[11])

Fermé
freec - 19 juin 2016 à 12:18
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 19 juin 2016 à 14:14
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 dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
19 juin 2016 à 13:14
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
19 juin 2016 à 14:14
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