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