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 otro float
, decimal
y double
.
1.3
flotador añaden a 1.3
de diferentes tipos:
|float | double | decimal |
+-------------------+------------+-----+
|2.5999999046325684 | 2.6 | 2.60000 |
1.3
flotador multiplicado por 1.3
de diferentes tipos:
| float | double | decimal |
+--------------------+--------------------+--------------+
| 1.6899998760223411 | 1.6900000000000002 | 1.6900000000 |
Esto es usando MySQL 6.7
Consulta:
SELECT
float_1 + float_2 as 'float add',
double_1 + double_2 as 'double add',
decimal_1 + decimal_2 as 'decimal add',
float_1 * float_2 as 'float multiply',
double_1 * double_2 as 'double multiply',
decimal_1 * decimal_2 as 'decimal multiply'
FROM numerics
crear tabla e insertar datos:
CREATE TABLE `numerics` (
`float_1` float DEFAULT NULL,
`float_2` float DEFAULT NULL,
`double_1` double DEFAULT NULL,
`double_2` double DEFAULT NULL,
`decimal_1` decimal(10,5) DEFAULT NULL,
`decimal_2` decimal(10,5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `_numerics`
(
`float_1`,
`float_2`,
`double_1`,
`double_2`,
`decimal_1`,
`decimal_2`
)
VALUES
(
1.3,
1.3,
1.3,
1.3,
1.30000,
1.30000
);
Tenga en cuenta que [ "Uso FLOAT le puede dar algunos problemas inesperados, porque todos los cálculos en MySQL se realizan con doble precisión"] (http://dev.mysql.com /doc/refman/5.0/en/numeric-type-overview.html) –
Supongo que quería decir este enlace: http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html – arun
Esto podría ser más útil: http://stackoverflow.com/questions/5150274/difference-between-float-and-decimal-data-type –