sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué la consulta sum () devuelve un resultado con más puntos decimales?

El float tipo de datos no representa números con dígitos decimales. Representa números con binario, por lo que los dígitos binarios en los números representan potencias de dos, como 16, 8, 4, 2, 1, ½, ¼, ⅛, etc.

Los números que se muestran como “272,7”, “0,55”, etc., no son representaciones precisas de los valores almacenados. Por ejemplo, el número que se muestra como "272,7" en realidad puede ser 272,70001220703125.

Las reglas que se usan para dar formato a los números para la salida pueden ocultarle estas diferencias al usar menos de todos los dígitos necesarios para mostrar el valor exacto.

Cuando agrega estos números, las diferencias entre los números reales y las representaciones decimales cercanas pueden aumentar o reducirse, según las variaciones aleatorias entre las diferencias. La suma que está viendo es un resultado natural de estas adiciones.