#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
printf("%u\n", sizeof(float)); //
printf("%u\n", sizeof(double)); //double의 2배 byte 사용하므로 이름이 double
printf("%u\n", sizeof(long double)); //부동소수점 표현 3가지 visual studio 에서는 double = long double
// 다른 개발환경에서는 각각 4, 8, 12
float f = 123.456f; // f 붙여주는게 좋음.. 안 그러면 경고 뜸
double d = 123.456;
float f2 = 123.456; // 여기에 대해 경고! 메모리가 작은 f에다가 메모리가 큰 double을 집어넣으려했으므로,,
//그러나 유효숫자 6자리라 이 상황은 딱히 문제 없
double d2 = 123.456f;
int i = 3;
float f3 = 3.f; //3.0f float 쓸 때는 .을 붙여주는 게 좋다. 컴퓨터 입장에서 .을 안 찍으면 정수형이지만, .을 찍게되면 실수형으로 인식
double d3 = 3.; //3.0
float f4 = 1.234e10f;//1.234 x 10^10 인 float
float f5 = 0xb.ap1; // e 대신 p 쓴 거,,
double d5 = 1.0625e0;
printf("%f %F %e %E\n", f, f, f, f); //123.456001 123.456001 1.234560e+02 1.234560E+02
//f는 float 형으로, e는 지수형으로 표현
printf("%f %F %e %E\n", d, d, d, d);
printf("%a %A \n", f5, f5); //0x1.7400000000000p+4 0X1.7400000000000P+4 16진수형으로
printf("%a %A \n", d5, d5); //0x1.1000000000000p+0 0X1.1000000000000P+0 16진수형으로
// 1.0625는 1/16, 16진수에서의 0.1이 1/16에 대응
return 0;
}