8.6 연습문제: 실수형 변수 선언하기
#include <stdio.h>
int main(void)
{
float num1 = 1.97f;
long double num2 = 5.524218l;
double num3 = 3792.8e+4;
printf("%f %lf %f\n", num1, num2, num3);
return 0;
}
8.7 연습문제: 자료형 크기 구하기
#include <stdio.h>
int main(void)
{
double num1 = 0.4284;
float num2 = 0.7f;
printf("num1의 크기: %zd, num2의 크기: %zd\n", sizeof(num1), sizeof(num2));
return 0;
}
8.8 연습문제: 최솟값과 최댓값 표현하기
#include <stdio.h>
#include <float.h>
int main(void)
{
float num1 = FLT_MAX;
double num2 = DBL_MIN;
long double num3 = LDBL_MAX;
printf("%.2f\n", num1); // %.2f: 소수 둘째자리까지 표현
printf("%e\n", num2);
printf("%le\n", num3);
return 0;
}
8.9 연습문제: 언더플로우
#include <stdio.h>
#include <float.h>
int main(void)
{
float num1 = FLT_MIN;
num1 = num1 / 100000000.0f;
printf("%e\n", num1);
return 0;
}
8.10 심사문제: 실수형 변수 선언과 자료형 크기 구하기
#include <stdio.h>
int main(void)
{
float num1 = 1.0f;
double num2 = 2.9;
long double num3 = 3.7l;
printf("%f %f %lf\n", num1, num2, num3);
printf("%zd %zd\n", sizeof(num1), sizeof(num2));
return 0;
}
8.11 심사문제: 최솟값과 최댓값 표현하기
#include <stdio.h>
#include <float.h>
int main(void)
{
double doubleMin;
double doubleMax;
long double longDoubleMin;
long double longDoubleMax;
doubleMin = DBL_MIN;
doubleMax = DBL_MAX;
longDoubleMin = LDBL_MIN;
longDoubleMax = LDBL_MAX;
printf("%e %e\n", doubleMin, doubleMax);
printf("%le %le\n", longDoubleMin, longDoubleMax);
return 0;
}
8.12 심사문제: 오버플로우
#include <stdio.h>
#include <float.h>
int main(void)
{
float num1 = -FLT_MAX;
num1 = num1 * 1000.0f;
printf("%f\n", num1);
return 0;
}