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:
Ca me donne:
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; }
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???
Partager