long double VS double 승자는...?!

죠랭이·2021년 2월 16일
0

알고리즘

목록 보기
1/3

Atcoder에서 문제 풀어보다가 자료형의 차이를 알려주는 문제를 만났다. C/C++에서 double, long double 이 두 타입에 대해서는 들어봤을 것이다. 이름도 비슷하여 별 차이가 없어(두 수 모두 IEEE 754 규정을 따름) 보이지만 소수점 자리 정확도 부분에서 큰 차이가 있다.

[double]

  • float 자료형보다 size가 큰 실수형 자료형. 일반적으로는 8byte이나 컴파일러 혹은 하드웨어에 따라 자료형 크기와 표현할 수 있는 수의 범위가 다르다.(포큐아카데미 C언어 강의에서도 자료형 크기는 정해진 것이 아닌 하드웨어에 따라 다를 수 있다고 함. 대개 흔히 알고 있는 자료형으로 간주하고 사용한다고 함)

[long double]

  • C99/C11 에선 16byte. 이때, Microsoft Visual C++(x86)에서는 double과 같은 8byte.
  • IEEE 754 표준을 따르는 gcc, g++ 컴파일러의 경우 16byte로 인식.
  • 대부분 C 컴파일러는 x86 80-bit extended precision 방식을 채택.

Atcoder Beginner contest 191: 이 문제의 point는 1. long double형 사용 2. 소수점 정확도를 높이기 위한 별도 처리

참고: 위키피디아, https://unluckyjung.github.io/cpp/2020/02/23/longdouble_vs_double/
profile
슈퍼 개발자를 목표로 하는 주니어

0개의 댓글