Formato en coma flotante de doble precisión

Si un número en doble precisión se convierte en una cadena decimal con al menos 17 dígitos significativos y luego se convierte de nuevo en doble, el número final debe coincidir con el original.

[2]​ El formato se escribe con un significando que tiene un bit entero implícito de valor 1 (excepto para los números especiales).

Los bits se presentan de la siguiente manera: El exponente de este formato está sesgado o desplazado en 1023 unidades, ya que como el máximo valor representado por 11 bits es 211-1=2047, es la mitad de este rango la que representa exponentes positivos y la otra, exponentes negativos, por lo que se usa la parte entera de la mitad de 2047.

En el intervalo entre 252 (4 503 599 627 370 496) y 253 (9 007 199 254 740 992) el espaciado entre números es 1, por lo que solo son exactamente representables los números enteros (no se puede representar la parte decimal).

Para el rango siguiente superior, de 253 a 254, todo se multiplica por 2, por lo que los números representables solo son los pares (espaciado 2), y así en lo sucesivo (aumentando el espaciado en potencias de 2).

Simétricamente, para el rango anterior, de 251 a 252, el espaciado es de 0,5, pudiéndose representar exactamente los números enteros en este rango y los valores intermedios (0,5, 1,5, etc).

En los rangos que les anteceden el espaciado entre números representables se va reduciendo en potencias de 2.

El error máximo de redondeo relativo cuando se redondea un número al representable más próximo (denominado el épsilon de la máquina) es por lo tanto 2-53.

Al comprometer la precisión, la representación subnormal permite valores incluso más pequeños hasta aproximadamente 5 × 10-324.

El exponente del formato en coma flotante de doble precisión es codificado usando una representación binaria sesgada en 1023 unidades, de modo que para obtener el exponente verdadero,debe restarse el sesgo de 1023 del exponente calculado.

Excepto en los casos anteriores, todo número de doble precisión se describe por:

Un área de computación donde se trata de un problema particular es para el código paralelo que se ejecuta en las GPUs.

Por ejemplo, cuando se utiliza la plataforma CUDA de NVIDIA, en las tarjetas de video diseñadas para juegos, los cálculos con doble precisión tardan 3 a 24 veces más en completarse que los cálculos con simple precisión.

Los procesadores que solo poseen precisión dinámica como los x86 sin SSE2 (o cuando SSE2 no es usado, para propósitos de compatibilidad) y con precisión extendida, usada por defecto, el software puede tener dificultades para cumplir ciertos requisitos.

Cy C++ ofrecen una amplia variedad de tipos aritméticos.

Sin embargo, en procesadores x86 de 32 bits con precisión extendida por defecto, algunos compiladores pueden no cumplir con el estándar C y/o la aritmética puede sufrir problemas de doble redondeo.

[4]​ Si bien las versiones tempranas de Pascal y Turbo Pascal no tenían soporte para Doble precisión, actualmente existe soporte completo para números en coma flotantes de doble precisisón en los compiladores más usados para Object Pascal.

Delphi, y Free Pascal incluyen el tipo Double como números en coma flotante de 64 bits de acuerdo al estándar IEEE-754.

Common Lisp proporciona excepciones para capturar subflujos de coma flotante y desbordamientos y la excepción de coma flotante inexacta, según IEEE 754.

No hay valores infinitos y las expresiones no numéricas (NaNs) se describen en el estándar ANSI, sin embargo, varias implementaciones sí proporcionan estas como extensiones.

Tal como se especifica en la norma ECMAScript, toda la aritmética en JavaScript se realizará utilizando aritmética de coma flotante de doble precisión.

Además, se proporcionan conversiones de tipo automático entre variables double (doble precisión) y string (cadenas).

Estructura de un número en formato de coma flotante de doble precisión.