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

Pengurangan dua nilai yang sama bukan nol di mysql

Itu dikenal sebagai perkiraan presisi . Ini bukan kesalahan, floating point tipe data dimaksudkan untuk bekerja seperti itu. Mereka tidak dapat menyimpan data dengan tepat. Jadi jika itu penting, Anda harus menggunakan tipe data titik tetap, seperti DECIMAL di MySQL.

Di sisi lain, Anda selalu dapat menggunakan delta presisi untuk perbandingan floating point, seperti:

SELECT 
  `foo`,
  `bar`,
  IF(ABS(`foo`-`bar`)<1E-13, 0, `foo`-`bar`) AS zero_compared
FROM
 t

seperti yang Anda lihat, di sini delta adalah 1E-13 (biasanya, itu sudah cukup)



  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 Mencari kamar gratis di sistem reservasi

  2. Mengubah nama kunci asing yang dihasilkan di Hibernate

  3. Google Cloud SQL - ERROR 2003 (HY000):Tidak dapat terhubung ke MySQL

  4. INSERT jika tidak Ada Mysql

  5. Bagaimana hasil gabungan keluaran dari dua tabel MySQL menggunakan PDO