Solución al error de tipo coma flotante float


En primer lugar, debemos saber que hay errores en los números de coma flotante.

Por ejemplo:

    float f = 1;
    float sum = 0;
    for(int i=0; i<4000000; i++)
    {
        sum += f;
    }
    cout<<sum<<endl;


La salida es: 9998.56


Esto se debe a la precisión limitada de la computadora para guardar números de punto flotante, entonces, ¿cómo podemos evitar mejor los errores de punto flotante?

De hecho, este tipo de error de punto flotante ocurre con mayor frecuencia solo cuando se juzga si dos números de punto flotante son iguales.

Solución:

bool equal(double a,double b){
    return fabs(a-b)<0.000001;
}


Siempre que la diferencia entre dos números de punto flotante sea pequeña, se puede considerar que son iguales.


————————————————
Enlace original: https://blog.csdn.net/weixin_37609825/article/details/79810018

Supongo que te gusta

Origin blog.csdn.net/weixin_42565127/article/details/130888224
Recomendado
Clasificación