콘텐츠로 이동

부동소수점 리터럴 (Floating-point Literals)

부동 소수점 리터럴은 지수 표기법을 사용하더라도 항상 양쪽에 숫자가 있는 기수 점이 있어야 합니다. 모든 부동 소수점 리터럴이 이 친숙한 형식을 취하면 가독성이 향상됩니다. 이는 정수 리터럴로 오인되지 않고 지수 표기법의 E/e가 16진수로 오인되지 않도록 하는 데 도움이 되기 때문입니다. 정수 리터럴로 부동 소수점 변수를 초기화하는 것은 괜찮지만(변수 유형이 해당 정수를 정확하게 나타낼 수 있다고 가정), 지수 표기법의 숫자는 결코 정수 리터럴이 아니라는 점에 유의하세요.

float f = 1.f;
long double ld = -.5L;
double d = 1248e6;
float f = 1.0f;
float f2 = 1.0;  // Also OK
float f3 = 1;    // Also OK
long double ld = -0.5L;
double d = 1248.0e6;

이해하기 쉽게 설명하기

핵심: 소수점 양쪽에 항상 숫자를

부동소수점 리터럴은 지수 표기를 쓰더라도 소수점 양쪽에 숫자가 있어야 합니다. 그래야 정수 리터럴로 오인되지 않고, 지수의 E/e가 16진수로 오해되지 않습니다.

float f = 1.f;          // 나쁨   →  float f = 1.0f;
long double ld = -.5L;  // 나쁨   →  long double ld = -0.5L;
double d = 1248e6;      // 나쁨   →  double d = 1248.0e6;

(부동소수점 변수를 정수 리터럴로 초기화하는 것 자체는 괜찮습니다: float f = 1;. 단 지수 표기의 수는 결코 정수 리터럴이 아닙니다.)