| Previous | Next |
| STATUS_FLOAT_STACK_CHECK | STATUS_INTEGER_DIVIDE_BY_ZERO |
STATUS_FLOAT_UNDERFLOW
The result fell below the normal floating-point range
Underflow describes a result whose magnitude is below the smallest normal value for the destination format and whose rounding causes a loss of accuracy. IEEE implementations can represent part of this range with subnormal values. FTZ mode instead converts tiny results to zero, changing both numerical behavior and which flags are observed.
A masked underflow is often expected in scientific, signal-processing, and iterative code. An exception usually means the underflow mask was intentionally or accidentally cleared. Capture the operands, destination precision, MXCSR/x87 controls, and whether the result became subnormal or zero. Repeatedly scaling values without a numerical plan can simply move the problem to overflow elsewhere.
What to inspect
- Record exception masks, FTZ/DAZ state, precision, and rounding mode.
- Determine whether the stored result is subnormal, zero, or another rounded value.
- Check thread-local control changes made by math and media libraries.
- Use algorithmic scaling only with documented numerical bounds.
References
- Microsoft Learn: _fpieee_flt
- Microsoft Learn: _control87 and _controlfp
- Microsoft Learn: /fp floating-point behavior
- Intel: Floating-Point Reference Sheet
Looking for a different code? Search another status or error code.
