Погрешности при работе с вещественными числами в компьютерах возникают из-за ограниченности разрядной сетки, то есть количества разрядов, отведённых для хранения каждого числа. it.rfet.ru youngcoder.ru
Некоторые причины возникновения погрешностей:
- Перевод дробных чисел из десятичной системы счисления в двоичную. youngcoder.ru Даже некоторые «круглые» числа (например, 0,2) в памяти компьютера представлены неточно, потому что в двоичной системе они записываются как бесконечные дроби и их приходится округлять до заданного числа разрядов. youngcoder.ru
- Невозможность хранить вещественные числа абсолютно точно. algoprog.ru В них может быть очень много знаков (даже бесконечно много) после запятой. algoprog.ru Поэтому компьютер хранит числа в записи с плавающей точкой: он хранит только несколько первых ненулевых цифр числа, а также то, что называется «экспонента», то есть целое число, показывающее, на сколько надо сдвинуть десятичную запятую в числе. algoprog.ru
- Переполнение разрядной сетки. it.rfet.ru youngcoder.ru Числа, хранящиеся в компьютере, не могут быть сколь угодно большими и имеют некоторые предельные значения. youngcoder.ru
Уменьшить погрешность можно за счёт расширения разрядной сетки, то есть выделения большего количества ячеек памяти для записи числа. it.rfet.ru