Tablora

Tablora · Библиотека

Проверить 0.10 плюс 0.20 с точными десятичными числами

Убедитесь, что 0.10 плюс 0.20 даёт ровно 0.30 в десятичной арифметике, чтобы сравнивать указанный итог без артефактов отображения чисел с плавающей точкой.

Почему 0.1 плюс 0.2 может выглядеть неправильно

Многие программы хранят числа в двоичном формате с плавающей точкой, где у 0.1 и 0.2 нет точного представления. Сложите их, и сохранённый результат окажется чуть больше 0.3; в зависимости от формата вы увидите 0.30000000000000004 или сравнение, утверждающее, что значения не равны. При сверке такой артефакт выглядит как расхождение, которого на самом деле нет.

Проверка десятичной суммы этого избегает. Она читает каждое значение как десятичную строку, приводит все значения к одному числу знаков после точки и складывает их как целые числа, поэтому 0.10 и 0.20 в сумме дают ровно 0.30.

Как ввести строки

Результат для 0.10 и 0.20

Со значениями 0.10 и 0.20 и ожидаемой суммой 0.30 «Вычисленная сумма» равна 0.30, «Разница» — 0.00, а «Суммы совпадают» показывает «Да». В результате два знака после точки, потому что это наибольшее их число среди введённых значений и ожидаемой суммы.

«Разница» — это всегда «Вычисленная сумма» минус «Ожидаемая сумма», поэтому отрицательная разница означает, что введённые строки не дотягивают до указанного числа.

Подготовка значений из реальной таблицы

Суммы, скопированные из выписки, редко приходят в каноническом виде. Сначала пропустите столбец через нормализатор чисел, выбрав десятичный разделитель и разделитель групп, которые использует документ, а затем скопируйте преобразованные значения в проверку. Значение, задержанное нормализатором для проверки, к суммированию не готово; разберитесь с ним, прежде чем доверять итогу.

Проверка выполняет точную арифметику над тем, что вы ввели, и больше ничего. Она не пересчитывает валюты, не применяет налоги или правила округления и не говорит, все ли записи были введены.

Что проверка не принимает

Входные данные

По одному значению в строке
0.10 0.20
Ожидаемая сумма
0.30

Результаты

Вычисленная сумма
0.30
Разница
0.00
Суммы совпадают
Да