Limite négative float (C++)

youz -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

j'ai un problème que je n'arrive pas a résoudre, malgré avoir chercher sur google.
Je m'explique. Dans mon programme, j'aimerai controlé l'overflow et l'underflow d'une valeur (float), cependant, lorsque par exemple je fais:

#include <limits>
#define MIN_FLOAT std::numeric_limits<float>min()

float test = -42.5;

if (test < MIN_FLOAT)
{
...
}

Le programme rentre dans ma condition. Si quelqu'un pourrait m'aider ^^
Merci.

3 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Bonjour,

    std::numeric_limits<float>::min() (vous avez oublié les :: devant le min() non ?)
    renvoie le plus petit float positif. Donc, il est normal que le programme rentre dans la boucle.

    Cdlt,
    1
  2. youz
     
    Oui désolé de l'oublie des :: ^^
    D'accord, merci !
    Mais existe-t-il une macro définie pour connaitre la limite des float négative ?
    Cordialement
    0
  3. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    si tu regarde là https://en.cppreference.com/w/cpp/language/types , tu verra que la valeur que tu cherches est simplement -1.*max(). Je ne sais pas si on utilise le complément à 2 pour les nombres réels.
    0