probleme bizarre sur le type double
bonjour à tous:P
j'aimerais comprendre ceci (en mode de test j'ai fait des calculs en
dur pour tenter de comprendre ce qu'il se passe sur mes calculs):
j'ai ceci donc
Code:
1 2 3 4 5
|
double titi = 0.00;
titi = (double)(1/49.0) * 6.39693; // le cast n'est pas vraiment necessaire
cout << titi << '?' << (titi==0.13055) << endl; |
je ne comprends pas pourquoi (titi==0.13055) me sort en false (=0!!!):calim2:
ça fait deux heures que je tente de comprendre où je fais mal les choses :calim2:
en fait je fais ce test en dur car je me suis rendu compte que après dans
mon code lorsque je fais
titi - toto --> ceci me rend différent de 0 alors que toto vaut vraiment 0.13055 (comme titi mais titi a un comportement bizarre et c'est ça que je tente de comprendre)
si quelqu'un peut m'aider!!! :arf::arf::help::help:
merci à tous!!!
en fait j'ai compris que titi vaut 0.13054959183673469387755102040816 c'est pour cela ; mais je ne comprends pas comment faire pour
que mon double ne soit pas tronqué!!!
existe-t-il un long double ou quelque chose du genre?
merci