Décimales d'un nombre double
Bonjour!
J'ai un programme qui fait des calculs assez précis avec des double, et j'aimerais connaître le nombre maximal de décimales pour pouvoir l'afficher dans mon interface graphique. J'ai essayé avec numeric_limits<double>::digits10 mais j'obtiens des résultats erronés. Par exemple le petit programme suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <iostream>
#include <limits>
using namespace std;
int main()
{
double x = 0.4372847 * 0.4372847 * 0.4372847;
cout << "decimales: " << numeric_limits<double>::digits10 << endl;
cout.precision(25);
cout << "x: " << x << endl;
return 0;
} |
Ca me donne:
decimales: 15
x: 0.083616665907888105
Donc il m'annonce 15 décimales, alors que j'en ai 18, mais en fait 17 chiffres significatifs (je pense que c'est ça que numeric_limits me renvoie). En tous les cas 15 != 17 , quelqu'un a peut-être une explication???