Почему Excel не округляется в соответствии с 8-байтовым IEEE 754
Следующее выражение оцениваетfalse
в C #:
(1 + 1 + 0.85) / 3 <= 0.95
И я предполагаю, что это происходит в большинстве других языков программирования, которые реализуют IEEE 754, так как(1 + 1 + 0.85) / 3
оценивает0.95000000000000007
, который больше чем0.95
.
Тем не менее, даже еслиExcel должен также реализовать большую часть IEEE 754следующие значения оцениваются как ИСТИНА в Excel 2013:
= ((1 + 1 + 0.85) / 3 <= 0.95)
Есть ли какая-то конкретная причина для этого? В приведенной выше статье не упоминаются какие-либо пользовательские реализации Excel, которые могут привести к такому поведению. Можете ли вы сказать Excel строго округлить в соответствии с IEEE 754?
Обратите внимание, что хотя большинство вопросов Excel следует задавать на сайте superuser.com, этот вопрос касается арифметики с плавающей запятой, которая является распространенной проблемой в языках программирования. С точки зрения темы этого вопроса, Excel - это язык программирования, такой как C # или Java.