2008-11-02 15 views
21

¿Hay un tipo de variable C++ nativo que sea "más grande" que un doble?
float es 7
double es 15 (por supuesto, depende del compilador)
¿Hay algo más grande que sea nativo, o incluso no nativo?¿Qué es más grande que un doble?

+0

generalmente pienso en flotación como 4 y dobles, 8, pero que usted se refiere al número aproximado de dígitos decimales, mientras que yo estoy refiriendo al número de bytes utilizados. –

+16

¡Un triple! (bah dum, chh!) – Thanatos

Respuesta

28

C++ tiene long double, pero no hay garantía de que sea más preciso que un simple double. En una plataforma x86, generalmente double es de 64 bits, y long double es de 64 u 80 bits (lo que le da 19 cifras significativas, si mal no recuerdo).

Su millaje puede variar, especialmente si no está en x86.

2

largo doble, pero generalmente sigue siendo 15 lugares de precisión también.

3

También hay algunas bibliotecas de bigfloat/bigint diferentes para C++ que permiten una matemática de precisión arbitraria. Hay una biblioteca this en Microsoft Codeplex, pero Google buscará muchas más.

2

C++ tiene el doble largo, pero todavía es bastante limitado. Por buen tiempo, pruebe la biblioteca gmp de GNU. Puede configurar números tan grandes como desee, y es bastante divertido y hackish cuando usa gmp_add en lugar de un + normal. Estoy seguro de que hay un contenedor de C++ en alguna parte.

8

Un doble largo normalmente solo usa 10 bytes, pero debido a la alineación en realidad puede ocupar 12 o 16 bytes (según el compilador y las opciones) en una estructura.

El doble de 10 bytes proporciona una mantisa de 64 bits; esto es muy conveniente para cuando quiere almacenar enteros de 64 bits en punto flotante sin pérdida de precisión.

+1

¿por qué se bajó este valor? ¿Esta mal? –

2

largos largos dobles sólo algunas CPUs le permitirá utilizarlo sin embargo ...

Cuestiones relacionadas