Bonjour,
Pour recentrer la discussion sur le problème initial de K-you (le 1 en 17ème position est une erreur d’arrondi inhérente au caractère « flottant » d’une discussion sur un forum , le problème initial est le 5 en 11ème position, qui rentre dans la précision d’un double, en tout cas sur mon Mandriva 64 bits).
Tu dois faire l’affichage comme ceci pour vérifier :
cout << precision(11) << dReturn;
car une précision de 6 est utilisée par défaut (je crois), ce qui coupe sont nombre en plein milieu des zéros et t’affiche une valeur tronquée, même si la variable contient bien la valeur complète.
Après, je connais pas Log4j ou log4cxx, je sait pas à quelle précision ça affiche la variable par défaut.
Si après une vérification correcte, la variable contient vraiment la valeur tronquée, c’est que c’est l’opération
qui pose problème. mais je ne crois pas que l’opérateur >> utilise de précision par défaut, je pense qu’il utilise tous les chiffres qu’il trouve en entrée, non ?
Partager