Я хочу подробнее остановиться на том, что Николас Кэри упомянул в своем ответе:
Значения с плавающей запятой в программном обеспечении обменивают величину на абсолютную точность (вам нужно разбросать только столько битов).
Именно поэтому мы называем их «числами с плавающей запятой» - мы разрешаем десятичной запятой «плавать» в зависимости от того, насколько велико число, которое мы хотим записать.
Давайте приведем пример в десятичной записи. Предположим, что вам дано 5 ячеек для записи числа: _ _ _ _ _. Если вы не используете десятичные точки, то можете представлять числа от 0 до 99999. Однако самое маленькое различие, которое вы можете представить, составляет 1.
Теперь вы решили, что вам нужно записать суммы в долларах, поэтому вы добавляете десятичную точку двумя цифрами слева: _ _ _. _ _ Это называется арифметика с фиксированной точкой . Теперь вы можете писать только цифры от 0 до 999,99, но теперь вы можете представлять разницу в один цент или 0,01
Что если вы хотите использовать эту программу как для небольших повседневных расходов, так и для вашего подоходного налога? Вы можете разрешить десятичную точку плавать и представлять ее положение, используя одну из цифр: [_] _ _ _ _
Например, ваш банковский процент может составлять [3] 4 7 6 5, что составляет 4,765, ваш счет за продуктовый магазин может быть [2] 5 9 8 2 (59,82), ваш арендный платеж 1 8 7 5 9 (875,9) и вашей налоговой декларации [0] 2 3 8 9 (2389). Вы можете даже разрешить десятичную точку выходить за пределы цифр следующим образом: [-1] 4 5 9 8 представляет 4598x10 = 45 980.
Обратите внимание, что теперь вы можете представлять как очень маленькие, так и очень большие числа, но вы не можете точно представить все числа. Например, при написании [0] 2389 мы теряем центы.
Более привычно всегда думать о числах с плавающей запятой в научных обозначениях, таких как 4.598x10 ^ 4, где «4.598» называется значимым, «4» - показателем степени, а «10» - основанием. Ссылки, упомянутые другими, содержат более подробную информацию о фактическом формате хранилища.