J'ai deux applications de console (msvc 2008). Quand ils ont la division par zéro, ils se comportent différemment. Mes questions sont ci-dessous.division msvc par zéro
a) Dans une application, le résultat de la division par zéro indique 1. # INF000000000000 comme débogueur. Printf "% 4.1f" l'imprime comme "1. $".
b) Dans une autre application, résultat de la division par zéro 9.2559631349317831e + 061 dans le débogueur. Printf "% 4.1f" affiche "-1. $".
Why
Aucune application n'a d'exception ou de signal sur div par zéro?
L'exception/le signal est-il un comportement par défaut?Quels sont les noms
define
pour les deux constantes ci-dessus?Généralement, si je vérifie le dénominateur == 0 avant div, quelle valeur
define
dois-je utiliser pour le résultat fictif? DBL_MIN ok? J'ai trouvé que la valeur de NaN n'est pas. Puis-je dire à stdio comment formater une double valeur spécifique en tant que chaîne de caractère que je lui dis? Je réalise que c'est trop demander. Mais ce serait bien de dire à stdio d'imprimer, disons, "n/a" pour les vaues DBL_MIN dans mon application, par exemple.Comment dois-je m'approcher, pour une meilleure portabilité, la division par zéro et l'impression des résultats? En imprimant, je veux dire "imprimer le numéro en tant que 'n/a' si c'est le résultat d'une division par zéro".
Ce qui n'est pas clair ici pour moi, comment dois-je représenter le résultat de div-by-zero dans un double, de manière portable.Pourquoi deux résultats différents? Ce sont les options du compilateur?
Le compilateur est C++, mais il est très proche de C. Merci.
Parce que la division par zéro n'est pas une exception standard spécifiée. Voir ce post http://stackoverflow.com/questions/4747934/c-catch-a-divide-by-zero-error pour plus d'informations. – Mahesh
@Mahesh: Cette question gère * entier * division par zéro. Cette question concerne les opérations à virgule flottante, qui sont traitées différemment. – Lindydancer