Đ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.