Written and maintained by CASRAI Editorial Board
Last updated
Short answer
IEEE 754 is the IEEE standard for floating-point arithmetic. It defines binary and decimal formats, rounding rules, special values (infinities, NaN) and exception handling, so each single operation gives the same rounded result on any conforming system. The current edition is IEEE 754-2019. It does not fix the order a program combines operations, where most research-computing differences arise.
Definition and scope
IEEE 754-2019, “IEEE Standard for Floating-Point Arithmetic”, was approved by the IEEE SA Standards Board on 13 June 2019 and published on 22 July 2019. IEEE SA lists it as active and as superseding IEEE 754-2008 (read 2026-11-07, standards.ieee.org/ieee/754/6210). Its scope is the interchange and arithmetic formats and methods for binary and decimal floating-point arithmetic, together with exception conditions and their default handling, and it may be implemented in software, hardware or both. The full text is a paid IEEE document; the IEEE SA page above is the official listing.
Types or related concepts: binary formats, decimal formats and epsilon
The standard defines decimal formats as well as binary ones, but the binary formats most researchers meet are single precision and double precision. Goldberg’s widely cited paper “What Every Computer Scientist Should Know About Floating-Point Arithmetic” (ACM Computing Surveys, March 1991; Oracle reprint read 2026-11-07) describes IEEE 754 as a binary standard that requires base 2, with significand precision p = 24 for single and p = 53 for double.
| Property | Single (binary32) | Double (binary64) |
|---|---|---|
| Total bits | 32 | 64 |
| Sign bits | 1 | 1 |
| Exponent bits | 8 | 11 |
| Exponent bias | 127 | 1023 |
| Precision p (including the implicit leading bit) | 24 | 53 |
Source for the table: Goldberg (1991). A single-precision number stores 1 sign bit, 8 exponent bits and 23 significand bits.
Why 0.1 is inexact
Decimal 0.1 has no finite binary expansion. Goldberg gives its binary approximation as about 1.10011001100110011001101 × 2-4 in single precision, so the stored value is close to, but not exactly, one tenth. Every later calculation inherits that representation error, which is why comparing computed values with == is unreliable.
Rounding
The standard requires basic operations to behave as if computed exactly and then rounded to the nearest representable number, using round-to-even on ties (Goldberg: 12.5 rounds to 12 rather than 13 because 2 is even). Goldberg also explains the guard digit, one extra digit in intermediate subtraction that requires only a one-bit-wider adder and keeps relative error small. The standard defines further rounding directions, including toward zero and toward positive and negative infinity.
Special values and subnormals
Besides ordinary numbers, the standard defines signed zeros, signed infinities and NaN (not a number), with quiet and signaling variants. Subnormal (denormalized) numbers fill the gap between zero and the smallest normal number at reduced precision; NumPy documents this distinction through its smallest_normal and smallest_subnormal attributes (numpy.finfo, read 2026-11-07). For how NaN behaves in practice, see NumPy NaN: detect, ignore and replace.
Two meanings of “epsilon”
Documentation uses the word epsilon for two different quantities, and mixing them changes tolerances by a factor of two.
| Convention | Definition | Double-precision value |
|---|---|---|
| Goldberg machine epsilon | Upper bound on relative rounding error, (β/2)β-p | 2-53 (from β = 2, p = 53) |
NumPy finfo.eps |
Difference between 1.0 and the next larger representable float | 2-52, about 2.22 × 10-16 |
The first value follows from Goldberg’s formula; the second is stated in the NumPy documentation. For the MATLAB eps function, see Epsilon in MATLAB.
Where it matters for research computing: what IEEE 754 does and does not guarantee
Goldberg notes that when two machines both support IEEE arithmetic, any difference in an intermediate result must come from software bugs, not from differences in arithmetic. That is the guarantee: each basic operation is deterministic.
It does not make a whole program order-independent, because floating-point addition is not associative. Goldberg’s example: the expression ((2 × 10-30 + 1030) − 1030) − 10-30 is exactly 10-30 in real arithmetic, but evaluated in IEEE arithmetic it gives −10-30. Anything that changes the order of operations, such as parallel reductions, a different compiler optimisation or a different linear-algebra backend, can therefore change the last digits of a result without any bug. See BLAS for how libraries organise such computations and computational reproducibility for the broader concept.
Checklist for reporting floating-point choices
- Precision: state single or double (binary32 or binary64) for each stage, including defaults of the library you use.
- Library and version: name the numerical library or language runtime, since summation order and algorithm choice live there, not in the standard.
- Threading and hardware: record thread counts and whether results were compared across machines, because the order of operations may depend on them.
- Tolerance: compare with an explicit tolerance rather than equality, and say which epsilon convention (above) the tolerance is expressed in.
- Special values: state how NaN, infinity and subnormal results are detected or handled.
Common misunderstandings
- “Floating point is random or buggy.” Each IEEE 754 operation is exactly specified; the surprises come from representation error and operation order.
- “Same standard means identical output.” Only identical operations in identical order do; see the non-associativity example above.
- “Epsilon is one number.” It has at least two conventions, factor of two apart.
FAQ
Where can I get the IEEE 754 PDF?
The standard is an IEEE publication; the official listing and purchase route is the IEEE SA page for IEEE 754-2019. Goldberg’s 1991 paper is a freely readable explanation of the concepts.
What is the IEEE 754 formula?
A normal number is a sign, a significand with an implicit leading 1, and a power of two set by the biased exponent. Subnormals have a biased exponent of zero and no implicit leading 1.
What are denormalized numbers in IEEE 754?
Subnormal numbers represent values between zero and the smallest normal number, with reduced precision.
How is a decimal number converted to IEEE 754?
The decimal value is converted to binary and rounded to the available precision (24 bits for single, 53 for double); values such as 0.1 round to the nearest representable binary number rather than being exact.
Is there an IEEE 754 calculator?
Online calculators exist for inspecting bit patterns; the underlying rules are those described above. Use the standard or Goldberg’s paper to check what a calculator is showing.
Sources
- IEEE Standards Association, “IEEE 754-2019 – IEEE Standard for Floating-Point Arithmetic”, standards.ieee.org/ieee/754/6210, read 2026-11-07.
- Goldberg, D. (1991). “What Every Computer Scientist Should Know About Floating-Point Arithmetic”, ACM Computing Surveys. Oracle reprint: docs.oracle.com, read 2026-11-07.
- NumPy documentation, numpy.finfo, read 2026-11-07.







