Bonjour,
J'aimerais savoir si il existe une constante minimum et une constante maximum que peut supporter un float. Ce qui peut être pratique pour faire un algo de recherche du min et max d'un ensemble de valeur !
Merci d'avance...
Bonjour,
J'aimerais savoir si il existe une constante minimum et une constante maximum que peut supporter un float. Ce qui peut être pratique pour faire un algo de recherche du min et max d'un ensemble de valeur !
Merci d'avance...
Flottants IEEE :
- valeur max = +inf
- valeur min = -inf
Il n'y a pas de constantes dans <limits.h> pour cela, mais ces valeurs s'obtiennent par float(1./0.) et float(-1./0.) respectivement.
Attention, les NaN ne sont pas ordonnés! Tu ne peux pas trier des flottants IEEE en les comparant simplement avec < si il peut y avoir des NaN dans le lot : une comparaison avec un NaN renvoie toujours faux.![]()
Merci pour ta réponse mais :
==>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 int main() { const float MAX_FLOAT = 1./0.; return 0; }
main.cpp: In function `int main()':
main.cpp:3: warning: division by zero in `1.0e+0 / 0.'
FLT_MAX et FLT_MIN dans <float.h>
std::numeric_limits<float>::max() et std::numeric_limits<float>::min() dans <limits>
Attention : le min renvoie le plus petit dans le sens "plus proche de zéro". Le plus petit sera en fait -FLT_MAX.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Encore faudrait-il préciser ce que renvoient ces fonctions min() et max().
std::numeric_limits<float>::max() = FLT_MAX et n'est pas +inf sur les machines IEEE qui peuvent représenter +inf.
std::numeric_limits<float>::min() n'est ni la plus petite valeur d'un float, ni la plus petite valeur finie, ni la plus petite valeur strictement positive, mais la plus petite valeur strictement positive normalisée.
Partager