บางครั้งประเภทข้อมูล Activerecord ทำให้ฉันสับสน เอ่อบ่อย หนึ่งในคำถามที่นิรันดร์ของฉันคือสำหรับกรณีที่กำหนด
ฉันควรใช้
:decimal
หรือ:float
?
ฉันเคยเจอลิงก์นี้บ่อยครั้งActiveRecord:: ทศนิยม vs: float? แต่คำตอบไม่ชัดเจนพอที่ฉันจะมั่นใจ:
ฉันได้เห็นหลายกระทู้ที่ผู้คนแนะนำให้แบนไม่เคยใช้ทศนิยมและใช้ทศนิยมเสมอ ฉันเคยเห็นคำแนะนำจากบางคนเพื่อใช้โฟลตสำหรับการใช้งานทางวิทยาศาสตร์เท่านั้น
นี่คือตัวอย่างบางกรณี:
- Geolocation / ละติจูด / ลองจิจูด:
-45.756688
,120.5777777
... - อัตราส่วน / ร้อยละ:
0.9
,1.25
,1.333
,1.4143
...
ฉันเคยใช้:decimal
ในอดีต แต่ฉันพบว่าการจัดการกับBigDecimal
วัตถุใน Ruby นั้นไม่สะดวกสบายเมื่อเทียบกับการลอย ฉันรู้ว่าฉันสามารถใช้:integer
เพื่อเป็นตัวแทนเงิน / เซ็นต์ได้เช่นกัน แต่มันก็ไม่เหมาะสำหรับกรณีอื่น ๆ เช่นเมื่อปริมาณที่ความแม่นยำอาจเปลี่ยนแปลงไปตามกาลเวลา
- ข้อดี / ข้อเสียของการใช้แต่ละข้อมีอะไรบ้าง
- มีกฎอะไรบ้างที่จะรู้ว่าควรใช้แบบไหน