sql >> Databáze >  >> RDS >> Mysql

Použití SUM na FLOAT datech

Nejsem si jistý, jakou verzi používáte, ale zní to jako tento odkaz popisuje, co prožíváte.

Z odkazu:

mysql> select * from aaa;
+----+------------+------+
| id | month_year | cost |
+----+------------+------+
|  1 | 2002-05-01 | 0.01 |
|  2 | 2002-06-01 | 1.65 |
|  3 | 2002-07-01 | 0.01 |
|  4 | 2002-01-01 | 0.01 |
+----+------------+------+

mysql> select id, sum(cost) from aaa group by id;
+----+---------------------+
| id | sum(cost)           |
+----+---------------------+
|  1 | 0.00999999977648258 |
|  2 |    1.64999997615814 |
|  3 | 0.00999999977648258 |
|  4 | 0.00999999977648258 |
+----+---------------------+

The SUM function changes 0.01 to 0.00999999977648258.

Čísla s plovoucí desetinnou čárkou jsou uložena jako přibližné hodnoty; pokud ukládáte cenu, je lepší použít dekadický datový typ, který ukládá přesné hodnoty.



  1. Jak odstranit nepracovní dobu v Oracle

  2. Jak importovat soubor Excel do SQL Server?

  3. Změňte název Laravel's created_at a updated_at

  4. Dotaz k odstranění jedinečného nebo primárního klíče z tabulky MYsql