Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Używanie SUM na danych FLOAT

Nie jestem pewien, której wersji używasz, ale brzmi to jak ten link opisuje to, czego doświadczasz.

Z linku:

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.

Liczby zmiennoprzecinkowe są przechowywane jako wartości przybliżone; jeśli przechowujesz cenę, lepiej użyj dziesiętnego typu danych, który przechowuje dokładne wartości.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chcesz numer wiersza w grupie kolumny w MY SQL?

  2. Optymalizacja wyszukiwania MySQL za pomocą polubień i symboli wieloznacznych

  3. Jak dynamicznie wybierać nazwy kolumn w mySQL?

  4. Migracja bazy danych MySQL z Amazon RDS do DigitalOcean

  5. Aktualizacja zapytania kończy się niepowodzeniem i błędem:1175