Tablora · Библиотека
Сохранить видимыми малые десятичные слагаемые
Сложите 1.2 и 0.003 точно и получите 1.203. Проверка сохраняет наибольшее число знаков после точки, поэтому малые слагаемые никогда не теряются при округлении.
Значения с разным числом знаков после точки
Реальные данные смешивают точность: цена за единицу с тремя или четырьмя знаками после точки, комиссия, округлённая до центов, количество в целых числах. Если складывать их в инструменте, который форматирует результат до двух знаков, малое слагаемое вроде 0.003 может исчезнуть из показанного итога, а два итога, различающиеся в третьем знаке, будут выглядеть одинаково.
Проверка десятичной суммы находит наибольшее число знаков после точки среди всех значений и ожидаемой суммы, приводит к нему каждое значение и складывает их точно. Ничего не округляется, и результат показывается с этой полной точностью.
Точность учитывает и «Ожидаемая сумма». Если ввести там 1.20300, каждое число в результате будет показано с пятью знаками после точки, хотя ни в одной строке столько нет.
Складываем 1.2 и 0.003
В примере на странице в поле «По одному значению в строке» введены 1.2 и 0.003, а ожидаемая сумма — 1.203. «Вычисленная сумма» равна 1.203, «Разница» — 0.000, поэтому «Суммы совпадают» показывает «Да». В результате три знака после точки, потому что их по три и у 0.003, и у ожидаемой суммы.
Обратите внимание: разница показана как 0.000, а не 0. Все числа в результате имеют одинаковую точность, и поэтому небольшие расхождения легко заметить.
Как вводить значения разной точности
- Копируйте каждое значение со всеми цифрами; не сокращайте 0.003 до 0.00 только потому, что исходный столбец отформатирован до двух знаков.
- Пишите ведущий ноль перед дробью. Значение вроде .003 не принимается.
- Используйте точку как десятичный знак и не используйте разделители групп; другие записи сначала преобразуйте нормализатором чисел.
- Проверьте точность в «Вычисленная сумма». Если знаков после точки больше, чем вы ожидали, одно из значений точнее остальных.
- Сохраняйте нули в конце, если они есть в источнике. 1.20 и 1.2 — одна и та же сумма, но лишняя цифра меняет точность результата.
Округление — отдельный шаг
Сохранение точности — свойство точной арифметики, а не финансовое правило округления. Если число, с которым вы сверяетесь, было округлено до центов, сначала выясните, округлял ли источник каждую строку или только итог, и сами примените это правило перед сравнением. Тогда проверка покажет, совпадает ли округлённое число.
Нормализатор чисел ведёт себя так же с отдельными значениями: он сохраняет записанные цифры дробной части, так что 125.00 остаётся 125.00, а 0.003 остаётся 0.003 и не сокращается.
Входные данные
- По одному значению в строке
- 1.2 0.003
- Ожидаемая сумма
- 1.203
Результаты
- Вычисленная сумма
- 1.203
- Разница
- 0.000
- Суммы совпадают
- Да