System.Math.TArithmeticException
Delphi
TArithmeticException = (exInvalidOp, exDenormalized, exZeroDivide,
exOverflow, exUnderflow, exPrecision);
C++
enum DECLSPEC_DENUM TArithmeticException : unsigned char { exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision };
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
enum | public | System.Math.pas System.Math.hpp |
System.Math | System.Math |
説明
浮動小数点例外を表す値を列挙したものです。
FPU(浮動小数点演算ユニット)では 32 ビット システム上で浮動小数点演算を処理し、SSE(ストリーミング SIMD 拡張命令)では 64 ビット システム上で浮動小数点演算を処理します。FPU でも SSE でも、SetExceptionMask を使用して一部またはすべての例外をマスクすることで、それらの例外が発生しないようにすることができます。
例外がマスクされると、FPU または SSE は値を求める試みの最良の結果として、多くの場合、NaN、Infinity、NegInfinity のいずれかを返します。返される値は、演算と現在の丸めモードによって決まります(GetRoundMode および SetRoundMode のリファレンスを参照)。
定義されている値の一覧を次の表に示します。
値 | 意味 |
---|---|
exInvalidOp |
無効な演算を行おうとしました。 |
exDenormalized |
非ゼロとして格納できるサイズより小さいサイズに数値が切り詰められました。数値が非正規化されました。 |
exZeroDivide |
ゼロで除算しようとしました。 |
exOverflow |
数値が、サポートされている正の上限値を超えました。 |
exUnderflow |
数値が、サポートされている負の下限値を下回りました。 |
exPrecision |
数値が精度の桁数を超えました。 |