8.9 연습문제: 언더플로우

다음 소스 코드를 완성하여 0.000000e+00이 출력되게 만드세요.

practice_real_number_under_flow.c

#include <stdio.h>
#include <float.h>

int main()
{
    float num1 = FLT_MIN;

    num1 = num1 __________________;

    printf("%e\n", num1);

    return 0;
}

실행 결과

0.000000e+00

정답

/ 100000000.0f

해설

float의 최솟값인 FLT_MIN이 0이 되었다면 언더플로우가 발생한 상황입니다. 따라서 num1을 큰 수로 나누면 됩니다.