[C++]Variable "infinity"

[Résolu]
Signaler
Messages postés
181
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
7 janvier 2012
-
Messages postés
181
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
7 janvier 2012
-
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

Messages postés
3833
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
11 juin 2021
122
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
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
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++
Messages postés
181
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
7 janvier 2012
9
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