LibreOffice calc имеет округляющуюся ошибку в сумме ()?

Версия LibreOffice: 4.2.8.2 Идентификатор сборки: 420m0 (Build:2)

У меня есть простая электронная таблица для двойной записи домой учет, который хорошо работает за исключением одной строки, где в условном форматировании я использую СУММУ () со значениями-23.99£, 8,00£ и 15,99£. Если результат не 0, я заставляю красный фон предупреждать меня, что я не сбалансировал строку. Упомянутая строка имеет красный фон.

Смотря на каждое из значений без формата валюты, они как ожидалось к 20 десятичным разрядам (например,-23.99000000000000000000). Однако результат СУММЫ (x, y, z) возвращает 3.6E-015 для той строки только. Все другие строки прекрасны. Если я повторяю тот же набор данных на другой строке, я получаю ту же ошибку. Что является 'особенным' об этих числах?

Очевидно, я могу исправить его путем округления моего результата, но интересно, является ли это известной ошибкой?

0
задан 30 September 2016 в 20:09

1 ответ

То, что Вы видите, является двоичной ошибкой преобразования. Те числа, в некоторой промежуточной точке, сохраненной в двоичной форме в процессоре и/или RAM, и преобразованы назад в десятичное число для сравнения (или преобразованный в двоичный файл для сравнения), Который представляет различие в последних нескольких десятичных числах, которые могут быть представлены (скорее всего), 32-разрядным значением плавающим со знаком. Это не ошибка в Office Libre Calc, как таковой; скорее свойственное ограничение в выполнении десятичной системы счисления на двоичной машине.

2
ответ дан 28 September 2019 в 12:10

Другие вопросы по тегам:

Похожие вопросы: