[C++]Variable "infinity"

Résolu
pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 - 9 juil. 2011 à 13:07
pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 - 10 juil. 2011 à 12:15
Bonjour à tous,
voila, en essayant de trouver la valeur maximale d'un double, la console m'affiche "Infinty" .

J'aimerais connaître la valeur de ma variable qui permet d'afficher ce "Infinity", mais pas moyen, j'ai essayé ceci :

std::cout << std::hex << variable;


Mais manque de bol ça m'affiche toujours "Infinity".

Même le débugger affiche "Infinty" à la place de la valeur (sur Code::Block).

Existe-t-il une valeur spéciale pour ce genre de variable ??? Comment le programme trouve-t-il cette valeur et pourquoi il ne repart pas à 0 comme il le fait pour un entier lors d'un dépassement de capacité ?

Merci d'avance pour vos réponses.

Pop70

3 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
9 juil. 2011 à 13:45
Numeric limit fera ton bonheur :)
http://www.cplusplus.com/reference/std/limits/numeric_limits/

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 juil. 2011 à 20:47
Si tu veux afficher en hexa pour voir ce qu'il y a vraiment dans ton double, traite le comme un UINT64, ainsi les surcouches std ne squizzeront plus le resultat.
*((UINT64*) &varDbl)

ciao...
BruNews, MVP VC++
3
pop70 Messages postés 181 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 7 janvier 2012 10
10 juil. 2011 à 12:15
Ok, merci pour vos réponses.

Grâce à ta méthode BruNews j'ai pu voir le contenu de la variable :

92188684372274053127
soit ff0000000000000 en hexadécimal.

Et avec la librairie <limits> j'ai pu voir :
numeric_limits<double>::max() = 1.79769e+308.


Merci à vous deux

C++dialement,

Pop70
0
Rejoignez-nous