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 : Sélectionner tout - Visualiser dans une fenêtre à part
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???