Red de conocimiento informático - Computadora portátil - Problemas con números de coma flotante en lenguaje C

Problemas con números de coma flotante en lenguaje C

La causa principal es que la mayoría de los decimales no se pueden convertir a decimales binarios exactos. Por ejemplo:

Binario 0,1 es igual a decimal 0,5.

Pero el decimal 0,1 no se puede convertir en decimal binario finito, y el resultado es un decimal binario cíclico infinito:

1(2)/1010(2)=0,0001100110011001100.... ..( 2)

Las variables de punto flotante se expresan como decimales de cualquier número. Por ejemplo, 9 se expresa como:

1.001*10^3

. Creo que el cartel debería saber que la parte decimal de un número de coma flotante solo puede contener números de cierta longitud. Si asumimos que hay una variable de coma flotante que solo puede contener 2 decimales, entonces se debe redondear 1,001, replicando el redondeo de decimales. Si el siguiente dígito es 1, ingrese 1. Si es 0, no ingrese 1, por lo que el número será 65438+.