Comment détecter et capturer des erreurs de calcul en virgule flottante (en C++

manyim Messages postés 6 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 28 février 2009 - 9 janv. 2009 à 19:17
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 9 janv. 2009 à 23:00
Comment détecter et capturer des erreurs de calculs en virgule flottante (en C++ ) ?


Bonjour.

Quelqu'un connait-il la bonne manière de capturer et de reconnaitre
avec exactitude les erreurs d'overflow, underflow, les divisions par
zerro et autres types d'erreurs dans les calculs en virgule flottante
en C++ ?

Je donne un exemple de code :

double a, b,c ;

.

.

. //code ici

.


try

{ c=a/b;

}

catch( ? )

{
   
???

}


Que mettre dans la clause catch pour detecter les erreurs telles que
les underflow, overflow et les divisions par zerro(dans le cas ou on ne
veut pas tester la valeur de b) ?


Merci beaucoup pour votre aide.


Charles N.

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 janv. 2009 à 23:00
La gestion d'erreurs est très couteuse et me semble inutile ici.

On controle toujours le diviseur avant toute division.

_statusfp2() et _isnan() devarient suffire.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous