IEEE 754 64-разрядная двоичная с плавающей запятой всегда использует 64-разрядную для хранения числа. Он может точно представлять конечное подмножество двоичных дробей. Если смотреть только на нормальные числа, то если N
является степенью двойки в своем диапазоне, он может представлять число вида в двоичном виде, 1.s*N
, где s
- строка из 52 нулей и единиц.
Все 32-битные двоичные целые числа, включая 2, являются точно представимыми.
Наименьшее точно представимое число, большее 2, равно 2.000000000000000444089209850062616169452667236328125. Это вдвое больше двоичной дроби 1.0000000000000000000000000000000000000000000000000000000000000001.
2.0000000000000003 ближе к 2.000000000000000444089209850062616169452667236328125, чем к 2, поэтому округляется и печатается как 2.0000000000000004.
2.0000000000000002 ближе к 2,0, поэтому округляется до 2,0.
Для хранения чисел от 2,0 до 2,000000000000000444089209850062616169452667236328125 потребуется другой формат с плавающей запятой, который, вероятно, займет более 64 бит для каждого числа.