2008-11-02 2 views
21

이중보다 "큰"네이티브 C++ 변수 유형이 있습니까?
float is 7
double은 15입니다 (물론 컴파일러에 따라 다름)
네이티브 또는 네이티브가 아닌 더 큰 것이 있습니까?두 배보다 큰 것?

+0

나는 보통 8로 4로 float과 double의 생각하지만, 내가 사용하는 바이트 수를 말하는 겁니다 반면 당신은 진수의 대략적인 수를 참조하고 있습니다. –

+16

트리플! (bah dum, chh!) – Thanatos

답변

28

C++의 코드는 long double입니다. 단, double보다 정확하다는 보장은 없습니다. x86 플랫폼에서 보통 double은 64 비트이고 long double은 64 비트 또는 80 비트입니다 (이는 당연한 것으로 생각하면 19 자리 숫자를 제공합니다).

귀하의 마일리지는 특히 x86을 사용하지 않는 경우에 따라 다를 수 있습니다.

2

긴 이중이지만 일반적으로 여전히 15 자리의 정밀도입니다.

3

C++에서 임의 정밀도 연산을 허용하는 다양한 bigfloat/bigint 라이브러리가 있습니다. Microsoft Codeplex에는 this 라이브러리가 있지만 인터넷 검색을 통해 많은 사람들을 찾을 수 있습니다.

9

GNU MP을 사용할 수 있습니다. 그것의 floating-point functions에는 무제한 가수와 32 비트 또는 64 비트 (기본 단어 크기에 따라) 지수가 있습니다. 또한 C++ wrapper과 함께 제공됩니다.

2

C++에는 long double이 있지만 여전히 제한되어 있습니다. GNU의 gmp 라이브러리를 사용해보십시오. 원하는만큼 큰 숫자를 설정할 수 있으며, 정상적인 + 대신 gmp_add를 사용하면 상당히 재미 있고 hackishly합니다. 어딘가에 C++ 래퍼가있을 것입니다.

8

long double은 일반적으로 10 바이트 만 사용하지만 정렬로 인해 실제로 구조에서 12 또는 16 (컴파일러 및 옵션에 따라 다름) 바이트를 차지합니다.

10 바이트 long double은 64 비트 가수를 제공합니다. 이는 정밀도의 손실없이 부동 소수점에 64 비트 정수를 저장하려는 경우 매우 편리합니다.

+1

왜 이것을 다운 그레이드 했습니까? 잘못 됐나? –

2

오래 오래 이중 일부 CPU는 1.53 이상이 multiprecision있다

관련 문제