Nick observa que la fórmula «= 0.28100-INT (0.28100) = 0» devuelve False aunque obviamente es cierto. Él cree que el problema tiene que ver con el redondeo y cómo la computadora usa aritmética binaria, etc. Nick está usando la fórmula como parte de un enunciado IF más grande, y asume que hay otros errores de redondeo en Excel que pueden llegar y morderlo . Se pregunta si existe una forma sencilla de evitar errores de fórmula como este.

Antes de buscar formas sencillas de evitar este tipo de problema, es importante comprender por qué existe el problema. Como señala Nick, realmente tiene que ver con la aritmética binaria y el hecho de que Excel redondea la información. Detrás de escena, Excel siempre redondea la información a 15 dígitos. Considere el cálculo con el que Nick está trabajando:

=0.28100-INT(0.28100)=0

Cuando Excel calcula esto por primera vez, la precedencia seguida por Excel lo calcula de esta manera:

=(0.28100-INT(0.28100))=0

Tenga en cuenta el conjunto extra de paréntesis. El resultado de todo a la izquierda de ese signo igual final es 3.55E-15, lo que significa que terminas con esta fórmula (a mano):

=0.00000000000000355=0

Obviamente, esto no es cierto, por lo que obtiene el valor False devuelto. Hay varias formas de «arreglar» esta situación. En este caso, quizás lo más fácil sea simplemente cambiar su fórmula para eliminar la necesidad de comparar a cero:

=0.28100=INT(0.28100)

Esta fórmula devuelve True, como era de esperar. Sin embargo, es posible que esto no funcione para todas sus necesidades. Por lo tanto, una mejor regla para evitar problemas es nunca confiar en el redondeo de Excel. Para ello, implemente su propio redondeo explícito, como se muestra con estas fórmulas:

=INT(0.28100)-INT(0.28100)=0 =ROUND(0.28100,0)-INT(0.28100)=0 =ROUND(0.28100,5)-ROUND(0.28100,5)=0

Tenga en cuenta que, en estos casos, no está permitiendo que Excel realice cálculos con toda su precisión, ya que eso puede causar algunos resultados inesperados cuando se compara con un valor específico, como cero.

En cambio, está obligando a Excel a redondear los valores, todos los valores con los que está trabajando, al nivel de precisión que necesite para su comparación.

Otro enfoque es no hacer la comparación con un valor exacto, como cero. En su lugar, tenga en cuenta algún «factor de manipulación» en la comparación, lo que permite problemas de redondeo. Por ejemplo, puede determinar que solo le importa si la comparación tiene una precisión de una centésima parte de las unidades que está asumiendo. En ese caso, la fórmula original podría modificarse de esta manera:

=0.28100-INT(0.28100)<0.01

Esto devuelve True, como era de esperar.

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (8145) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Avoiding_Rounding_Errors_in_Formula_Results [Evitar errores de redondeo en los resultados de la fórmula].