System.Math.TArithmeticException
Delphi
TArithmeticException = (exInvalidOp, exDenormalized, exZeroDivide,
exOverflow, exUnderflow, exPrecision);
C++
enum DECLSPEC_DENUM TArithmeticException : unsigned char { exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision };
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
enum | public | System.Math.pas System.Math.hpp |
System.Math | System.Math |
Description
Enumération qui contient ces valeurs représentant les exceptions de virgule flottante.
La FPU (Floating Point Unit) gère les calculs en virgule flottante sur les systèmes 32 bits tandis que le SSE (Streaming SIMD Extensions) gère les calculs en virgule flottante sur les systèmes 64 bits. Vous pouvez empêcher les exceptions de se produire en utilisant SetExceptionMask pour masquer certaines d'entre elles ou toutes les exceptions sur la FPU et le SSE.
Quand une exception est masquée, la FPU ou le SSE font de leur mieux pour renvoyer une valeur – souvent NaN, Infinity ou NegInfinity. La valeur dépend de l'opération et du mode d'arrondi choisi (voir GetRoundMode et SetRoundMode).
Les valeurs définies sont indiquées dans le tableau suivant :
Valeur | Signification |
---|---|
exInvalidOp |
Une opération incorrecte a été tentée. |
exDenormalized |
Un nombre a été réduit en taille à une valeur inférieure à la taille stockable en non-zéro. Il a été dénormalisé. |
exZeroDivide |
Une tentative de division par zéro a été effectuée. |
exOverflow |
Un nombre a dépassé la plus grande valeur positive supportée. |
exUnderflow |
Un nombre a dépassé la plus grande valeur négative supportée. |
exPrecision |
Un nombre a dépassé le nombre de chiffres de la précision. |