IEEE 754 specifies additional floating-point formats, including 32-bit base-2 single precision and, more recently, base-10 representations (decimal floating point).
Double-precision binary floating-point is a commonly used format on PCs, due to its wider range over single-precision floating point, in spite of its performance and bandwidth cost.
[1] The format is written with the significand having an implicit integer bit of value 1 (except for special data, see the exponent encoding below).
The 11 bit width of the exponent allows the representation of numbers between 10−308 and 10308, with full 15–17 decimal digits precision.
Examples of such representations would be: The exponents 00016 and 7ff16 have a special meaning: where F is the fractional part of the significand.
By default, 1/3 rounds down, instead of up like single precision, because of the odd number of bits in the significand.
In more detail: Using double-precision floating-point variables is usually slower than working with their single precision counterparts.
[4] Additionally, many mathematical functions (e.g., sin, cos, atan2, log, exp and sqrt) need more computations to give accurate double-precision results, and are therefore slower.
However, on 32-bit x86 with extended precision by default, some compilers may not conform to the C standard or the arithmetic may suffer from double rounding.
Common Lisp provides the types SHORT-FLOAT, SINGLE-FLOAT, DOUBLE-FLOAT and LONG-FLOAT.
Version 1.2 allowed implementations to bring extra precision in intermediate computations for platforms like x87.