有时,Activerecord数据类型使我感到困惑。经常犯错。对于给定的情况,我永恒的问题之一是
我应该使用
:decimal
还是:float
?
我经常遇到这个链接,ActiveRecord::decimal vs:float?,但答案还不够清楚,无法确定:
我见过很多线程,人们建议平整地使用永不使用float并始终使用十进制。我也看到一些人建议仅将浮点数用于科学应用。
这是一些示例情况:
- 地理位置/纬度/经度:
-45.756688
,120.5777777
,... - 比/百分比:
0.9
,1.25
,1.333
,1.4143
,...
我过去使用:decimal
过,但是与BigDecimal
浮点数相比,我发现在Ruby中处理对象不必要地麻烦。我也知道:integer
,例如,我可以用来表示金钱/美分,但是它并不完全适合其他情况,例如当精度可能随时间变化的数量时。
- 使用它们的优点/缺点是什么?
- 知道使用哪种类型的最佳经验法则是什么?