He tenido un problema con mi código JavaScript donde en el paso final de verificación de un formulario, suma los valores para determinar si su suma total es equivalente a 100 o no. Normalmente, funciona según lo previsto, pero ocasionalmente indicará que hay un problema si, por ejemplo, los valores son: 9.325210871602625 y 90.67478912839736. La suma de estos valores debería aceptarse, pero no lo es.
Por lo que puedo decir, los cálculos que se realizan para adquirir estos valores son correctos, por lo que no creo que sean la fuente del error y, francamente, hay demasiado código involucrado en el cálculo de sus valores para mostrarlo aquí de todos modos.
Obviamente, podría aflojar los requisitos para que cualquier valor que se encuentre en el rango de (99.99 - 100.01) sea aceptado como:
let valuesOK = sumValues("example") > 99.99 && sumValues("example1") < 100.01;pero eso no parece una solución adecuada.
Mi única teoría es que debido a que ambos números tienen 16 dígitos en el caso que proporcioné (9.325210871602625 y 90.67478912839736), sin embargo, debido a que 9.325... tiene un decimal más que 90.674... , eso puede estar causando problemas al sumarlos. . De todos modos, no estoy seguro de cómo resolver elegantemente ese problema si mi teoría es correcta.
Agradecería cualquier ayuda o referencias a la documentación que pueda dar sentido a mi problema.