Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menggunakan SUM pada data FLOAT

Saya tidak yakin versi apa yang Anda gunakan, tetapi sepertinya tautan ini menggambarkan apa yang Anda alami.

Dari tautan:

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.

Nomor floating point disimpan sebagai nilai perkiraan; jika Anda menyimpan harga, lebih baik Anda menggunakan tipe data desimal yang menyimpan nilai presisi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah ada cara yang lebih sederhana untuk menemukan MODE(S) dari beberapa nilai di MySQL

  2. Ikon Wampserver tidak sepenuhnya hijau, layanan mysql tidak memulai?

  3. Python Mysql, perintah tidak sinkron; Anda tidak dapat menjalankan perintah ini sekarang

  4. Laravel 4:banyak di mana dengan atau fasih

  5. Bagaimana cara masuk otomatis di MySQL dari skrip Shell?