Mysql
 sql >> база данни >  >> RDS >> Mysql

Използване на SUM върху FLOAT данни

Не съм сигурен коя версия използвате, но звучи като тази връзка описва това, което изпитвате.

От линка:

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.

Числата с плаваща запетая се съхраняват като приблизителни стойности; ако съхранявате цена, по-добре е да използвате десетичен тип данни, който съхранява точни стойности.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL:SELECT метод - но не показва дубликати / GROUP или DISTINCT?

  2. Как да генерирате уникална произволна стойност за всеки потребител в laravel и да я добавите към базата данни

  3. Можете ли да разделите/раздуете поле в MySQL заявка?

  4. SQL:Какво е по подразбиране Подреждане по на заявките?

  5. Има ли някаква вреда при нулирането на автоматичното увеличение?