TArithmeticExceptionMask:浮点数异常控制的异常类型集合
请参考:SetExceptionMask 函数和 TArithmeticException 类型。
头文件:
#include <System.Math.hpp> (XE2 之后),#include <Math.hpp> (XE 之前)
命名空间:
System::Math
TArithmeticException 成员
TArithmeticException 是集合类型,定义如下:
typedef System::Set<TArithmeticException, TArithmeticException::exInvalidOp, TArithmeticException::exPrecision> TArithmeticExceptionMask;
集合里可以包含以下异常:
鼠标按钮 |
说明 |
exInvalidOp |
不合理的运算 (invalid),例如 0.0 除以 0.0 就是不合理的运算,无法计算出结果。
控制字这一位等于 0:抛出异常 EInvalidOp;等于 1:计算结果为 ± NAN |
exDenormalized |
次正常 (denormal):有效数字向下溢出一部分,可以使用精度不足的浮点数来表示运算结果【注】
控制字这一位等于 0:抛出异常 EInvalidOp;等于 1:计算结果用 “次正常” 的浮点数表示 |
exZeroDivide |
被零除 (zero divide),不等于零的数值除以零。
控制字这一位等于 0:抛出异常 EZeroDivide;等于 1:计算结果为 ± INF |
exOverflow |
向上溢出 (overflow),绝对值太大,超过了浮点数能够表达的范围【注】
控制字这一位等于 0:抛出异常 EOverflow;等于 1:计算结果等于 ± HUGE_VAL |
exUnderflow |
向下溢出 (underflow),绝对值太小,超过了浮点数能够表达的范围【注】
控制字这一位等于 0:抛出异常 EUnderflow;等于 1:计算结果等于 ± 0 |
exPrecision |
降低精度 (inexact (precision)),例如把 double 赋值给 float,降低了精度【注】
控制字这一位等于 0:抛出异常 EInvalidOp;等于 1:结果为降低精度的值 |
|