Đôi khi, các kiểu dữ liệu Activerecord làm tôi bối rối. Err, thường xuyên. Một trong những câu hỏi muôn thuở của tôi là, đối với một trường hợp cụ thể,
Tôi nên sử dụng
:decimal
hay:float
?
Tôi thường xuyên bắt gặp liên kết này, ActiveRecord :: thập phân vs: float? , nhưng câu trả lời không đủ rõ ràng để tôi chắc chắn:
Tôi đã thấy nhiều chủ đề mà mọi người khuyên bạn nên không bao giờ sử dụng float và luôn sử dụng số thập phân. Tôi cũng đã thấy một số người đề xuất chỉ sử dụng float cho các ứng dụng khoa học.
Dưới đây là một số trường hợp ví dụ:
- Geolocation / vĩ độ / kinh độ:
-45.756688
,120.5777777
, ... - Tỷ lệ / Tỷ lệ:
0.9
,1.25
,1.333
,1.4143
, ...
Tôi đã sử dụng :decimal
trong quá khứ, nhưng tôi thấy việc xử lý BigDecimal
các đối tượng trong Ruby là khó xử không cần thiết so với một chiếc phao. Tôi cũng biết rằng tôi có thể sử dụng :integer
để đại diện cho tiền / xu chẳng hạn, nhưng nó không hoàn toàn phù hợp với các trường hợp khác, ví dụ như khi số lượng trong đó độ chính xác có thể thay đổi theo thời gian.
- Những lợi thế / bất lợi của việc sử dụng mỗi là gì?
- Điều gì sẽ là một số quy tắc tốt để biết loại nào để sử dụng?