#define _CRT_SECURE_NO_WARNINGS 1 #include #include #include int main( int argc, char **argv ) { unsigned int u = _controlfp(0, 0); double x = 0.5e-323, y = 0.5e-323; printf( "x contains: %g before dividing by 2\n", x ); x /= 2; printf( "x now contains: %g\n", x ); u = u & ~_EM_UNDERFLOW; _controlfp(u, _MCW_EM); printf( "\ny contains: %g before dividing by 2\n", y ); __try { y /= 2; } __except( EXCEPTION_EXECUTE_HANDLER ) { printf( "Floating point underflow exception occurred\n"); } printf( "y now contains: %g\n", y ); return 0; } #### C:\test>intOverflow.exe x contains: 4.94066e-324 before dividing by 2 x now contains: 0 y contains: 4.94066e-324 before dividing by 2 Floating point underflow exception occurred y now contains: 4.94066e-324