IT이야기

긴 이중 리터럴의 C++ 접미사는 무엇입니까?

cyworld 2021. 9. 14. 21:25
반응형

긴 이중 리터럴의 C++ 접미사는 무엇입니까?


C++(및 C)에서 접미사가 없는 부동 소수점 리터럴은 기본적으로 double, 접미사 ffloat. 그러나 접미사는 무엇 long double입니까?

나도 모르는 사이에 나는 다음과 같이 정의할 것이다.

const long double x = 3.14159265358979323846264338328;

그러나 내 걱정은 변수 x3.1415926535897932384626433832864보다 적은 유효 비트가 포함되어 있다는 double입니다. 이것은 리터럴 이기 때문 입니다. 이 걱정이 정당한가?


C++ 표준에서

접미사에 의해 명시적으로 지정되지 않는 한 부동 리터럴의 유형은 이중입니다. 접미사 f 및 F는 float를 지정하고 접미사 l 및 L은 long double을 지정합니다.

C 표준의 해당 단락과 비교하는 것은 흥미롭습니다. C에서는 C ++ floating constant대신에 사용된 용어가 있습니다 floating literal.

4 접미사가 없는 부동 상수의 유형은 double입니다. 접미사가 f 또는 F이면 float 유형입니다. 문자 l 또는 L이 접미사이면 유형이 long double입니다.


C 접미사는 L. 나는 그것이 C ++에서도 동일하다고 강력히 의심합니다.

당신의 걱정은 정당합니다. 리터럴은 먼저 a 로 변환 double되어 잘린 다음 다시 long double.


귀하의 우려는 유효하며 L긴 이중 리터럴에 접미사를 사용해야 합니다 .

ReferenceURL : https://stackoverflow.com/questions/21557816/whats-the-c-suffix-for-long-double-literals

반응형