Quel est le meilleur moyen indépendant de la plate-forme pour obtenir la valeur maximale pouvant être stockée dans un float
en C++?Méthode indépendante de la plate-forme pour obtenir la valeur maximale du flottant C++
Répondre
#include <float.h>
puis utilisez FLT_MAX
std::numeric_limits<float>::max()
// numeric_limits example
#include <iostream>
#include <limits>
using namespace std;
int main() {
cout << "Minimum value for float: " << numeric_limits<float>::min() << endl;
cout << "Maximum value for float: " << numeric_limits<float>::max() << endl;
cout << "Minimum value for double: " << numeric_limits<double>::min() << endl;
cout << "Maximum value for double: " << numeric_limits<double>::max() << endl;
return 0;
}
Il convient de noter que les appels à min() pour les types à virgule flottante renvoient la valeur positive minimale et non la valeur minimale. Il y a une grande différence. –
En C++, vous pouvez utiliser la classe std::numeric_limits
pour obtenir ce genre d'information rmation.
Si has_infinity
est true
(qui sera essentiellement vrai pour toutes les plateformes de nos jours), vous pouvez utiliser infinitity
pour obtenir la valeur qui est supérieure ou égale à toutes les autres valeurs (sauf NaN). De même, sa négation donnera un infini négatif, et sera inférieur ou égal à toutes les autres valeurs (sauf NaNs à nouveau).
Si vous voulez des valeurs finies, vous pouvez utiliser min
/max
(qui sera inférieur ou égal à/supérieur ou égal à toutes les autres valeurs finies).
Les en-têtes de bibliothèque standard sont mieux importés sans l'extension . Voir cette question SO http://stackoverflow.com/questions/441568/when-can-you-omit-the-file-extension-in-an-include-directive pour un aperçu. – Francesco