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

Perbedaan antara tipe data float dan desimal

Ini itulah yang saya temukan ketika saya memiliki keraguan ini.

mysql> create table numbers (a decimal(10,2), b float);
mysql> insert into numbers values (100, 100);
mysql> select @a := (a/3), @b := (b/3), @a * 3, @b * 3 from numbers \G
*************************** 1. row ***************************
  @a := (a/3): 33.333333333
  @b := (b/3): 33.333333333333
@a + @a + @a: 99.999999999000000000000000000000
@b + @b + @b: 100

Desimal melakukan persis apa yang seharusnya dilakukan pada kasus ini, memotong sisanya, sehingga kehilangan 1/3 bagian.

Jadi untuk penjumlahan desimal lebih baik, tetapi untuk pembagian float lebih baik, sampai titik tertentu, tentu saja. Maksud saya, menggunakan DECIMAL tidak akan memberi Anda "aritmatika bukti gagal" dengan cara apa pun.

Semoga ini membantu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL ALTER DATABASE Syntax – Didaftarkan oleh DBMS

  2. Bagaimana cara menghasilkan migrasi secara otomatis dengan Sequelize CLI dari model Sequelize?

  3. #1071 - Kunci yang ditentukan terlalu panjang; panjang kunci maksimal adalah 1000 byte

  4. MySql Count tidak dapat menampilkan 0 nilai

  5. int(11) vs. int(lainnya)