web-dev-qa-db-fra.com

Quoi de plus grand qu'un double?

Existe-t-il un type de variable c ++ natif qui est "plus grand" qu'un double?
float est 7
double est 15 (bien sûr selon le compilateur)
Y a-t-il quelque chose de plus grand qui est natif, ou même non natif?

28
baash05

C++ a long double, mais il n'y a aucune garantie qu'il soit plus précis qu'un simple double. Sur une plate-forme x86, généralement double est de 64 bits et long double est soit 64 ou 80 bits (ce qui vous donne 19 chiffres significatifs, si je me souviens bien).

Votre kilométrage peut varier, surtout si vous n'êtes pas sous x86.

37

Un long double n'utilise généralement que 10 octets, mais en raison de l'alignement, il peut en fait prendre 12 ou 16 octets (selon le compilateur et les options) dans une structure.

Le double long de 10 octets fournit une mantisse de 64 bits; ceci est très pratique lorsque vous souhaitez stocker des entiers 64 bits en virgule flottante sans perte de précision.

11
ysth

Vous pouvez utiliser GNU MP . Ses fonctions à virgule flottante ont une mantisse illimitée et un exposant 32 bits ou 64 bits (selon la taille native de Word). Il est également livré avec un wrapper C++ .

9
CesarB

Il existe également diverses bibliothèques bigfloat/bigint pour C++ qui permettent des mathématiques de précision arbitraire. Il y a this bibliothèque sur Microsoft Codeplex, mais Google vous en trouvera plein d'autres.

3
Dana the Sane

C++ a longtemps doublé, mais il est encore assez limité. Pour un bon moment, essayez la bibliothèque gmp de GNU. Vous pouvez configurer des nombres aussi gros que vous le souhaitez, et c'est assez amusant et piraté lorsque vous utilisez gmp_add au lieu d'un + normal. Je suis sûr qu'il y a un wrapper C++ quelque part.

3
gilm

long double, mais il reste généralement 15 points de précision aussi.

2
Jake

long long double seulement quelques cpus vous permettront de l'utiliser quand même ...

2
Arron Brooks
0
user1356386