Terkadang, tipe data Activerecord membingungkan saya. Err, sering. Salah satu pertanyaan abadi saya adalah, untuk kasus tertentu,
Haruskah saya menggunakan
:decimal
atau:float
?
Saya sering menemukan tautan ini, ActiveRecord:: desimal vs: float? , tetapi jawabannya tidak cukup jelas bagi saya untuk memastikan:
Saya telah melihat banyak utas di mana orang merekomendasikan flat out untuk tidak pernah menggunakan float dan selalu menggunakan desimal. Saya juga melihat saran oleh beberapa orang untuk menggunakan float hanya untuk aplikasi ilmiah.
Berikut adalah beberapa contoh kasus:
- Geolocation / lintang / bujur:
-45.756688
,120.5777777
, ... - Rasio / persentase:
0.9
,1.25
,1.333
,1.4143
, ...
Saya telah menggunakan :decimal
di masa lalu, tetapi saya menemukan berurusan dengan BigDecimal
benda - benda di Ruby tidak perlu canggung dibandingkan dengan pelampung. Saya juga tahu saya bisa menggunakan :integer
untuk mewakili uang / sen, misalnya, tetapi tidak cukup cocok untuk kasus lain, misalnya ketika jumlah di mana presisi dapat berubah dari waktu ke waktu.
- Apa kelebihan / kekurangan menggunakan masing-masing?
- Apa aturan praktis yang baik untuk mengetahui tipe mana yang digunakan?