IEEE 754‐1985, Binary 64, Floating‐Point Examiner

Chris W. Johnson
March 13, 2021

Imprecision is common in floating‐point. The imprecision is inevitable; no numeric format can represent every possible number. Furthermore, floating‐point formats like IEEE 754‐1985 were designed to preserve magnitude by sacrificing precision. Loss of precision, for whatever reason, can cause important effects, especially when people are unaware of the issue, a common problem (even among computer programmers) in part because decimal representations of these numbers are pervasively created with the intent of hiding inaccuracies.

It is hoped this tool will aid understanding of the causes and effects of those issues.

The “IEEE 754‐1985, binary 64” format is a very common floating‐point format used by Java¹ to represent numbers in its double primitives and Double objects, and for all floating‐point calculations. By extension, any other languages executed in the Java Virtual Machine (JVM) will use it. It is also used by languages unrelated to Java and the JVM. Notably, C and C++ use it wherever it is the host CPU’s native representation (prime examples are Intel’s CPUs, so it is a very common case), Javascript uses it for essentially all numbers, C# float and double types use it, Python uses it on most platforms, and so on.

Browser Compatibility

This page requires browsers to support the MathML standard. As of May, 2013, Firefox and Safari had MathML support, but Chrome did not (it was in version 24, but no other versions).


  1. Java Virtual Machine versions prior to 15 use IEEE 754-1985. Versions 15 and above use use IEEE 754-2019.
Valid XHTML 1.0 Strict Valid CSS!