como mostrar decimales de la suma de 8 bits en php
Respuestas a la pregunta
Respuesta:Porque la aritmética de coma flotante! = Aritmética de números reales. Una ilustración de la diferencia debida a la imprecisión es, para algunos flotadores a y b, (a+b)-b != a. Esto se aplica a cualquier idioma usando flotadores.
Dado que punto flotante son números binarios con precisión finita, hay una cantidad finita de números representables , lo que conduce problemas de precisión y sorpresas como esta. Aquí hay otra lectura interesante: Lo que todo científico informático debe saber sobre la aritmética de punto flotante .
Volviendo a su problema, básicamente no hay manera de representar con precisión 34.99 o 0.01 en binario (como en decimal, 1/3 = 0.3333 ...), por lo que se usan aproximaciones. Para solucionar el problema, puede:
Use round($result, 2) en el resultado para redondearlo a 2 decimales.
Utilice números enteros. Si esa es la moneda, digamos dólares estadounidenses, luego almacene $ 35.00 como 3500 y $ 34.99 como 3499, luego divida el resultado por 100.
Es una pena que PHP no tenga un tipo de datos decimal como otrosidiomas do.
117
Explicación: