Excel округляет число в одной записи, округляет то же число в другой - PullRequest
0 голосов
/ 01 мая 2019

Excel округляет числа непоследовательно, что вызывает у меня проблемы. При использовании ROUND () иногда оно округляет определенное число вверх, а в другое время округляет то же значение вниз.

Я пытался настроить Excel для отображения точных значений в настройках, но это ничего не меняет.

Это пример того, что происходит.

Это простая формула ROUND ((A1-B1) / 2,4)

Для одной записи у меня есть значения (.3159 - .3152), которые оцениваются как .0007, а затем делятся на 2, чтобы получить .00035.

Для следующей записи у меня есть значения (.3554 - .3547), которые также оцениваются в .0007 и делятся на 2 результата в .00035

Итак, хотя оба значения равны .00035, когда я округляю до 4 знаков после запятой, я получаю .0003 для одного и .0004 для другого. Одинаковое число, округление до одинакового количества мест, два разных результата. Как я могу это исправить?

1 Ответ

1 голос
/ 01 мая 2019

Это проблема с числами с плавающей запятой, которая присуща и не может быть решена, только устранена.

Попробуйте эти тесты в Excel:

=(0,3159-0,3152)=(0,3554-0,3547) дает вам FALSE.

=(0,3159-0,3152)-(0,3554-0,3547) дает вам что-то вроде 5.55112E-17.

Если вы не можете принять различия, вы должны округлить уже в середине расчета, а не только в конце:

=ROUND(0.3159-0.3152,4)=ROUND(0.3554-0.3547,4) является TRUE

=ROUND(0.3159-0.3152,4)-ROUND(0.3554-0.3547,4) является 0

дальнейшее чтение: Является ли арифметика с плавающей запятой стабильной? и Двоичные числа с плавающей запятой и .NET , высоко ценится Джоном Скитом.

...