Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyện gì đang xảy ra với Mysql float?

Khi bạn nhân với 1 , kết quả đang được chuyển đổi thành DOUBLE . Điều này có độ chính xác cao hơn, và kết quả là bạn có thể thấy lỗi trong xấp xỉ thập phân. Bạn có thể thấy điều tương tự bằng cách gán FLOAT cột thành DOUBLE cột.

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 |
+--------------+--------------------+--------------------+

Tôi thực sự không chắc tại sao nó trả về DOUBLE từ phép nhân, vì tài liệu nói:

Nhưng rõ ràng đó là những gì đang xảy ra.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. truy vấn cập nhật mysql với tham gia bên trong

  2. phần còn lại mật khẩu gốc mysql

  3. Đếm có điều kiện Mysql

  4. làm cho máy chủ MySQL có quyền ghi trong thư mục \ xampp \ tmp

  5. Khi nào tôi nên sử dụng MySQLi thay vì MySQL?