Por que o Excel não arredonda de acordo com o IEEE 754 de 8 bytes
A expressão a seguir avalia comofalse
em c #:
(1 + 1 + 0.85) / 3 <= 0.95
E suponho que o faça na maioria das outras linguagens de programação que implementam o IEEE 754, já que(1 + 1 + 0.85) / 3
avalia como0.95000000000000007
, que é maior que0.95
.
No entanto, emboraO Excel também deve implementar a maior parte do IEEE 754, o seguinte é avaliado como TRUE no Excel 2013:
= ((1 + 1 + 0.85) / 3 <= 0.95)
Existe alguma razão específica para isso? O artigo vinculado acima não menciona nenhuma implementação personalizada do Excel que possa levar a esse comportamento. Você pode dizer ao Excel para arredondar estritamente de acordo com a IEEE 754?
Observe que, embora a maioria das perguntas do Excel deva ser feita no superuser.com, esta pergunta trata da aritmética de ponto flutuante, que é um problema comum nas linguagens de programação. Do ponto de vista do tópico desta pergunta, o Excel é uma linguagem de programação como C # ou Java.