MySQL: ¿Cuál es la diferencia entre float y double?
110
Al verificar la nueva estructura de la base de datos, vi que alguien cambió un campo de flotante a doble. Preguntándome por qué, revisé la documentación de mysql, pero honestamente no entendí cuál es la diferencia.
Ambos representan números de coma flotante. A FLOATes para DOUBLEnúmeros de precisión simple, mientras que a es para números de precisión doble.
MySQL usa cuatro bytes para valores de precisión simple y ocho bytes para valores de precisión doble.
Existe una gran diferencia entre los números de coma flotante y los números decimales (numéricos), que puede utilizar con el DECIMALtipo de datos. Esto se usa para almacenar valores de datos numéricos exactos, a diferencia de los números de coma flotante, donde es importante preservar la precisión exacta, por ejemplo, con datos monetarios.
@Kailas Los flotadores se redondean y los decimales no. El decimal (9,3) podría ser, por ejemplo, 123456.789, mientras que si intentara almacenar 123456.789, se insertaría como 123456.0 como flotante.
FLOAT almacena números de punto flotante con precisión de hasta ocho lugares y tiene cuatro bytes, mientras que DOUBLE almacena números de punto flotante con precisión de hasta 18 lugares y tiene ocho bytes.
Respuestas:
Ambos representan números de coma flotante. A
FLOAT
es paraDOUBLE
números de precisión simple, mientras que a es para números de precisión doble.MySQL usa cuatro bytes para valores de precisión simple y ocho bytes para valores de precisión doble.
Existe una gran diferencia entre los números de coma flotante y los números decimales (numéricos), que puede utilizar con el
DECIMAL
tipo de datos. Esto se usa para almacenar valores de datos numéricos exactos, a diferencia de los números de coma flotante, donde es importante preservar la precisión exacta, por ejemplo, con datos monetarios.fuente
Quizás este ejemplo podría explicarlo.
Tenemos una mesa como esta:
Para la primera diferencia, intentamos insertar un registro con '1.2' en cada campo:
La tabla que se muestra así:
¿Ver la diferencia?
Intentamos con el siguiente ejemplo:
¡Hola! Podemos encontrar la diferencia así:
fuente
float(10, 2)
Los dobles son como flotadores, excepto por el hecho de que son dos veces más grandes. Esto permite una mayor precisión.
fuente
Que me gustaría añadir mi propio ejemplo, que me ayudó a ver la diferencia con el valor
1.3
al añadir o multiplicando con otrofloat
,decimal
ydouble
.1.3
flotador AÑADIDO a1.3
de diferentes tipos:1.3
flotador MULTIPLICADO por1.3
de diferentes tipos:Esto está usando MySQL 6.7
Consulta:
Crear tabla e insertar datos:
fuente
FLOAT almacena números de punto flotante con precisión de hasta ocho lugares y tiene cuatro bytes, mientras que DOUBLE almacena números de punto flotante con precisión de hasta 18 lugares y tiene ocho bytes.
fuente
Float tiene 32 bits (4 bytes) con una precisión de 8 lugares. Double tiene 64 bits (8 bytes) con una precisión de 16 lugares.
Si necesita una mayor precisión, use Double en lugar de Float .
fuente