본문 바로가기
프로그래밍/c++

c++ 3. 데이터 타입(자료형) 실수, 부동 소수점

by 지나팩 2023. 12. 31.

C++에서 부동 소수점 다루기

부동 소수점이란?

부동 소수점은 컴퓨터에서 실수를 표현하는 방식입니다. 이 방식은 과학적 표기법을 사용해 매우 크거나 작은 수를 효율적으로 표현할 수 있게 해줍니다. 예를 들어, 123.45는 부동 소수점으로 1.2345×102로 표현됩니다.

C++에서는 주로 float와 double 타입을 사용하여 부동 소수점 수를 표현합니다. float는 4바이트를 사용하고, double은 8바이트를 사용하여 더 큰 범위와 정밀도를 제공합니다.

 

float의 경우 접미사 f를 붙혀주어야 합니다.

 

C++에서는 주로 floatdouble 타입을 사용하여 부동 소수점 수를 표현하며, 이들 각각은 서로 다른 정밀도를 가집니다.

 

부동 소수점의 정밀도

1. float

  • 32비트를 사용합니다.
  • 대략 6-7자리의 십진수 정밀도를 가집니다.
  • 예: 3.14159는 float으로 근사적으로 표현할 수 있지만, 더 많은 자릿수는 정확도를 잃을 수 있습니다.

2. double

  • 64비트를 사용합니다.
  • 대략 15-16자리의 십진수 정밀도를 가집니다.
  • 예: 3.141592653589793는 double로 상당히 정확하게 표현할 수 있습니다.

정밀도 예제

부동 소수점의 정밀도를 이해하기 위한 몇 가지 예제를 살펴보겠습니다.

float와 double의 기본 정밀도 차이를 보여주는 예제입니다.

위 예제의 결과를 보면 float과 double의 정밀도 차이가 명확히 보입니다. float의 경우 double에 비해 반 정도 정밀도가 낮기에 7자리 이후의 값이 제대로 표현되지 않는 것을 알 수 있습니다.

 

기본적으론 위 내용을 토대로 활용하시면 됩니다. 하지만 부동 소수점은 위 내용이 전부가 아닌 의외로 복잡한 메커니즘에 의해 계산이 됩니다. 아래의 링크를 참고해보시면 도움이 되실 것 같네요.

https://ko.wikipedia.org/wiki/%EB%B6%80%EB%8F%99%EC%86%8C%EC%88%98%EC%A0%90

 

부동소수점 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 초기의 전기기계식 프로그래밍 가능한 컴퓨터 Z3에는 부동소수점 산술 기능이 포함되었다. (뮌헨의 국립 독일 박물관) 부동소수점(浮動小數點, floating point) 또

ko.wikipedia.org

 

 

'프로그래밍 > c++' 카테고리의 다른 글

c++ 05. bool 자료형  (1) 2024.01.03
c++ 04. 문자와 문자열  (0) 2024.01.02
c++ 2. 데이터 타입(자료형) 정수  (0) 2023.09.22
c++ 01. 변수  (0) 2023.09.16
c++ 입력 std::cin  (0) 2023.08.31

댓글