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

Sự khác biệt giữa kiểu dữ liệu số thực và số thập phân

Điều này là những gì tôi tìm thấy khi tôi có nghi ngờ này.

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

Số thập phân đã làm chính xác những gì phải làm trong trường hợp này, cắt xén phần còn lại, do đó mất 1/3 phần.

Vì vậy, đối với các tổng, số thập phân là tốt hơn, nhưng đối với các phép chia float, tất nhiên, cho đến một số thời điểm. Ý tôi là, việc sử dụng DECIMAL sẽ không cung cấp cho bạn "số học bằng chứng thất bại" trong bất kỳ phương tiện nào.

Hi vọng điêu nay co ich.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để giải quyết các tên cột không rõ ràng khi truy xuất kết quả?

  2. Tự động triển khai MySQL hoặc Cụm Postgres của bạn từ bản sao lưu

  3. Kích thước bộ nhớ tối đa TINYTEXT, TEXT, MEDIUMTEXT và LONGTEXT

  4. Lỗi quyền Mysql với 'tải dữ liệu'

  5. Một câu lệnh đã chuẩn bị sẵn, truy vấn và sắp xếp `WHERE .. IN (..)` - với MySQL