float이 빠를까?, double이 빠를까?
결론부터 얘기하면 float 자료형과 double 자료형의 성능 비교는 하드웨어 및 소프트웨어 환경, 현재 작업 내용 등과 같은 다양한 요인에 따라 달라질 수 있어 빠름을 비교하는 것이 의미가 없다. 제일 중요한 건, 프로그램 소스코드를 짜면서 나에게 지금 필요한 것이 성능인지, 정밀도인지 생각하고 성능일 경우 float, 정밀도인지 double을 쓰면 된다.
일반적으로 float 자료형이 더 적은 메모리를 필요로 하고, 범위가 더 작기 때문에 double 자료형보다는 조금은 빠를 수 있다. 그러나, double 자료형은 정밀도가 더 높기 때문에 보다 float 자료형보다 더 넒은 값을 나타낼 수 있다. 게다가 요즘 출시되는 CPU는 정말 너무나도 뛰어나기 때문에 사칙연산을 기준으로 float : 단 정밀도(single precision) 32비트와 double : 배 정밀도(double precision)의 연산 속도가 동일한 수준이다. (단, 나눗셈은 예외로 한다.)
다음 예제는 C++에서 float 및 double 유형의 변수를 선언하고 초기화하는 방법의 예이다.
#include <iostream>
int main()
{
float f = 3.14159265358979323846;
double d = 3.14159265358979323846;
std::cout << f << std::endl; // Output: 3.14159
std::cout << d << std::endl; // Output: 3.141592653589793
}
일반적으로 정밀도가 보통이고, 고성능 데이터 유형이 필요할 때는 float 데이터 유형을 사용하고, 더 넓은 범위를 표현할 수 있는 보다 정밀한 데이터 유형이 필요할 때는 double 데이터 유형을 사용하는 것이 좋다. 만약 작성하고자 하는 코드가 부동 소수점 계산에 크게 의존하지 않는 경우 float 와 double 간의 성능 차이는 중요하지 않다. 결국 코드를 짜면서 중요한 것은 성능과 정밀도 중 내가 무엇을 선택하냐의 차이이다.
[데이터타입] double vs. float 연산 속도
real-time code를 개발하다보면 마주하게 되는 issue. double 연산이 빠를까 float 연산이 빠를까?! ...
blog.naver.com
읽어보면 좋은 또 다른 출처. 무려 2005년도 글이 박제되어 있다. 댓글을 보면 어셈블리를 통해 찾아본 사람이 있는데 float이나, double이나 모두 같은 연산을 쓰고 있어서 차이가 없다고 한다.
float 와 double 어떤 자료형이 더 빠른가?
데이터 매니져를 구현하다가 문득 든 의문점이 있습니다. " float와 double형 어떤 것이 더 빠를까? " 둘다...
blog.naver.com