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

Apa yang terjadi dengan Mysql float?

Saat Anda mengalikan dengan 1 , hasilnya diubah menjadi DOUBLE . Ini memiliki lebih presisi, dan sebagai hasilnya Anda dapat melihat kesalahan dalam perkiraan desimal. Anda dapat melihat hal yang sama dengan menetapkan FLOAT kolom ke DOUBLE kolom.

CREATE TABLE `my_table` (
  `my_float_col` float,
  `my_double_col` double
);
INSERT INTO my_table (my_float_col) values (1.2355);
UPDATE my_table SET my_double_col = my_float_col;
SELECT my_float_col, my_double_col, my_float_col * 1 FROM my_table;
+--------------+--------------------+--------------------+
| my_float_col | my_double_col      | my_float_col * 1   |
+--------------+--------------------+--------------------+
|       1.2355 | 1.2354999780654907 | 1.2354999780654907 |
+--------------+--------------------+--------------------+

Saya tidak begitu yakin mengapa itu mengembalikan DOUBLE dari perkalian, karena dokumentasi mengatakan:

Tapi itu jelas apa yang terjadi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana menghubungkan ke database menggunakan Sequel Pro

  2. Menggunakan klausa WHERE untuk menemukan POI dalam rentang jarak dari Bujur dan Lintang

  3. Cegah penyisipan tanggal dan waktu ke database

  4. Menemukan/mencari nilai yang hilang di MySQL

  5. Masalah HighCharts dalam sumbu ganda, grafik garis dan kolom