글 목록으로 돌아가기

TechNotes

float보다 double을 더 많이 사용하는 이유는 무엇일까?

float와 double의 차이, 32비트에서 64비트 환경으로 변화하면서 double이 기본 선택이 된 이유

Dohyeon Kim
Dohyeon Kim 2026년 8월 6일 · 3분 읽기
DeepDive CS DataType

Q. float는 4Byte이고 double은 8Byte인데 왜 double을 더 많이 사용할까?

수업을 듣던 중, 강사님께서 평소 floatdouble 중 어떤 자료형을 사용하는지 질문하셨다.

평소 코딩테스트를 준비할 때나 전공 수업을 들을 때도 주로 float을 이용했다.

float는 4Byte, double은 8Byte이다.

그렇다면 메모리를 절약하려면 float를 사용하는 것이 더 좋은 선택 아닐까?

하지만 대부분의 프로그램에서는 double을 기본으로 사용한다고 한다. 왜 double을 기본처럼 사용할까?

A. 현대 컴퓨터에서는 메모리 절약보다 계산의 정확성이 더 중요하기 때문이다.

과거에는 메모리 용량이 매우 제한적이었다.

따라서 4Byte인 float를 사용하는 것만으로도 의미 있는 메모리 절약 효과를 얻을 수 있었다.

하지만 현재는 대부분의 PC와 서버가 수 GB 이상의 메모리를 사용하며, 8Byte를 사용하는 부담이 과거보다 크게 줄어들었다.

이러한 환경에서는 메모리 절약보다 계산의 정확성과 안정성을 확보하는 것이 더 중요해졌고, 그 결과 double이 기본적으로 많이 사용된다.

double은 더 높은 정밀도를 제공한다.

floatdouble의 가장 큰 차이는 표현 가능한 숫자의 정밀도이다.

자료형 크기 유효 자릿수
float 4Byte 약 7자리
double 8Byte 약 15~16자리

반복 계산이나 소수 연산이 많은 프로그램에서는 작은 오차가 계속 누적될 수 있다.

double은 이러한 누적 오차를 크게 줄여주므로 과학 계산, 금융 프로그램, 게임 엔진 등 다양한 분야에서 기본적으로 사용된다.

float가 항상 더 빠른 것은 아니다.

많은 사람들이 메모리가 절반이므로 연산도 더 빠를 것이라고 생각한다.

하지만 현대 CPU는 floatdouble 모두를 하드웨어에서 처리한다.

또한 C/C++에서는 실수 리터럴의 기본 타입도 double이다.

double a = 3.14;

float b = 3.14f;

표준 수학 라이브러리(sqrt, sin, cos, log 등) 역시 대부분 double을 기준으로 제공된다.

또한 float도 연산 과정에서 CPU 내부 연산 정밀도를 사용하여 계산한 뒤 다시 float에 저장될 수 있다.

float a = 1.2f;
float b = 3.4f;

float c = a + b;

개념적으로는 다음과 같은 과정을 거친다고 이해하면 된다.

float
    ↓
CPU 내부 연산 정밀도
    ↓
연산 수행
    ↓
float로 저장

실제 내부 구현은 CPU와 컴파일러에 따라 다르지만, 중요한 점은 float를 사용한다고 해서 항상 더 빠른 것은 아니라는 것이다.

그렇다면 언제 float를 사용할까?

메모리 사용량이 성능에 직접적인 영향을 주는 환경에서는 float를 적극적으로 사용한다.

대표적인 예시는 다음과 같다.

  • GPU(OpenGL, CUDA, DirectX)
  • 머신러닝의 FP32 연산
  • 임베디드 시스템
  • 모바일 환경
  • 대용량 배열이나 이미지 처리

수백만 개 이상의 데이터를 저장하는 경우에는 4Byte 차이만으로도 상당한 메모리를 절약할 수 있기 때문이다.

자주 하는 오해

  • 64비트 운영체제에서는 float도 8Byte가 된다.
    • 아니다. 일반적으로 float는 4Byte, double은 8Byte이다.
  • double을 많이 사용하는 이유는 64비트 운영체제이기 때문이다.
    • 아니다. 운영체제 때문이 아니라, 현대 컴퓨터의 메모리와 CPU 성능이 크게 향상되면서 double을 사용할 부담이 줄어들었기 때문이다.
  • float가 메모리를 적게 사용하므로 항상 더 빠르다.
    • 아니다. 현대 CPU에서는 두 자료형 모두 하드웨어에서 처리하며 일반적인 프로그램에서는 성능 차이가 크지 않다.

정리

  • float는 4Byte, double은 8Byte이다.
  • double이 많이 사용되는 이유는 64비트 운영체제 때문이 아니라 현대 하드웨어 환경에서 메모리 부담이 크게 줄었기 때문이다.
  • doublefloat보다 약 두 배 이상의 정밀도를 제공해 계산 오차를 줄일 수 있다.
  • 일반적인 애플리케이션에서는 double을 사용하는 것이 더 적합하다.
  • 메모리 사용량이 중요한 환경에서는 float를 선택하는 것이 유리할 수 있다.

댓글