Gedanken würde ich mein eigenes Beispiel hinzufügen, die ich die Differenz mit dem Wert 1.3
sehen half beim Hinzufügen oder mit einer anderen float
multipliziert, decimal
und double
.
1.3
Schwimmer hinzugefügt, um 1.3
unterschiedlicher Typen:
|float | double | decimal |
+-------------------+------------+-----+
|2.5999999046325684 | 2.6 | 2.60000 |
1.3
float Multipliziert mit 1.3
unterschiedlicher Typen:
| float | double | decimal |
+--------------------+--------------------+--------------+
| 1.6899998760223411 | 1.6900000000000002 | 1.6900000000 |
Diese 6.7 MySQL unter Verwendung
Abfrage:
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
Tabelle erstellen und Daten einfügen:
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
);
Beachten Sie, dass [ „FLOAT verwenden könnten Sie einige unerwartete Probleme geben, weil alle Berechnungen in MySQL mit doppelter Genauigkeit durchgeführt werden“] (http://dev.mysql.com /doc/refman/5.0/en/numeric-type-overview.html) –
Ich glaube, du meintest diesen Link: http://dev.mysql.com/doc/refman/5.0/en/problems-with-float.html – arun
Dies könnte hilfreicher sein: http://stackoverflow.com/questions/5150274/difference-between-float-and-decimal-data-type –