Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C/C++에서 float와 double의 차이점

<시간/>

우리는 C/C++에서 부동 소수점 숫자, 즉 소수 부분이 포함된 숫자의 표현을 위해 float 및 double 데이터 유형이 필요하다는 것을 알고 있습니다. 이제 이 두 데이터 유형이 제공하는 정밀도를 기반으로 두 데이터 유형을 구분할 수 있습니다. 그 중

간단히 말해서 double은 float보다 비교 정밀도가 2배 더 높다고 할 수 있습니다. 즉, double 데이터 유형은 float 데이터 유형에 비해 double 정밀도를 갖는다는 것을 의미합니다.

정밀도의 측면에서 double은 부동 소수점 수에 대해 64비트 정밀도(부호에 대해 1비트, 지수에 대해 11비트, 값에 대해 52*비트)를 갖는다고 말할 수 있습니다. 즉, double은 15자리의 정밀도를 갖습니다. . float는 부동 숫자에 대해 32비트 정밀도(지수에 대해 8비트, 값에 대해 23*)를 갖는 반면, 즉 float는 7자리의 정밀도를 갖습니다.

double은 float에 비해 정밀도가 더 높기 때문에 float 데이터 유형이 차지하는 메모리보다 두 배의 메모리를 차지한다는 것이 훨씬 분명합니다.

또한 두 데이터 유형의 범위는 ±3.40282347E+38F, 즉 float의 경우 6-7개의 유효 자릿수, double의 경우 ±1.79769313486231570E+308 즉, 15-16개의 유효 숫자로 표시될 수 있습니다.

위의 요점을 바탕으로 우리는 높은 정밀도가 필요하지 않고 프로그램이 저장하기 위해 거대한 십진수 배열만 필요로 하는 경우 float는 데이터를 저장하고 메모리를 절약하는 비용 효율적인 방법이며 더 많은 정밀도가 필요할 때 말할 수 있습니다. 더블로 가세요.