8
votes

Manière indépendante de la plate-forme d'obtenir une valeur de flotteur maximale C ++

Quel est le meilleur moyen indépendant de la plate-forme d'obtenir la valeur maximale pouvant être stockée dans un float en C ++?


0 commentaires

5 Réponses :


25
votes

-1
votes
#include <float.h>
then use FLT_MAX

1 commentaires

Les en-têtes de bibliothèque standard sont mieux importés sans l'extension. Voir ceci alors question

std::numeric_limits<float>::max()

0 commentaires

9
votes

std :: numeric_limits

// 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;
}


1 commentaires

Il convient de noter que les appels vers min () pour les types de points flottants renvoient la valeur positive minimale et non la valeur minimale. Il y a une grande différence.



1
votes

in c ++ Vous pouvez utiliser le std :: numeric_limits classe pour obtenir ce genre d'informations.

si has_infinity est < Code> true (qui sera vrai pour fondamentalement toutes les plates-formes de nos jours), vous pouvez alors utiliser Infinitity pour obtenir la valeur supérieure ou égale à toutes les autres valeurs (sauf les NAN). De même, sa négation donnera une infinité négative et sera inférieure ou égale à toutes les autres valeurs (à l'exception des Nans à nouveau).

Si vous voulez des valeurs finies, vous pouvez utiliser min < / code> / max (qui sera inférieur ou égal à / supérieur ou égal à toutes les autres valeurs finies).


0 commentaires