Underflow range error exception
This macro expands to a value of type int that identifies the floating-point exception raised on underflow range errors.

Underflow range errors occur when the result of an operation cannot be represented as a value of its return type because its magnitude is too small (with either positive or negative sign).

Operations that overflow return an unspecified value whose magnitude is no greater than the smallest normalized positive number.

Whether an operation raises this exception is implementation-defined: there are no operations required to raise this exception, but an implementation may choose to do so.

FE_UNDERFLOW is defined as a value that is an exact power of two, allowing several floating-point exceptions to be combined (using the bitwise OR operator: |) into a single value:
macro valuedescription
FE_DIVBYZEROPole error: division by zero, or some other asymptotically infinite result (from finite arguments).
FE_INEXACTInexact: the result is not exact.
FE_INVALIDDomain error: At least one of the arguments is a value for which the function is not defined.
FE_OVERFLOWOverflow range error: The result is too large in magnitude to be represented as a value of the return type.
FE_UNDERFLOWUnderflow range error: The result is too small in magnitude to be represented as a value of the return type.
FE_ALL_EXCEPTAll exceptions (selects all of the exceptions supported by the implementation).
Certain library implementations may support additional floating-point exception values (with their corresponding macros also beginning with FE_).
Libraries may define in <fenv.h> only the macro values above they support (the others may not be defined).
At least all of the above macro values are defined in <cfenv> (even if not supported by the implementation).

See also