時々、Activerecordデータタイプは私を混乱させます。エラー、よくあります。私の永遠の質問の1つは、特定のケースについて、
私が使用する必要があります
:decimal
か:float
?
私は頻繁にこのリンクに出くわしました、ActiveRecord::decimal vs:float?、しかし答えは私が確信できるほど明確ではありません:
浮動小数点を使用せず、常に10進数を使用することをお勧めするスレッドがたくさんあります。また、フロートを科学的用途にのみ使用するという提案もいくつかあります。
いくつかのケース例を以下に示します。
- ジオロケーション/緯度/経度:
-45.756688
、120.5777777
、... - 比率/割合:
0.9
、1.25
、1.333
、1.4143
、...
私は:decimal
以前に使用しましたがBigDecimal
、Ruby でオブジェクトを処理することは、フロートに比べて不必要に扱いにくいことに気付きました。:integer
たとえば、お金やセントを表すために使用できることもわかっていますが、たとえば、精度が時間の経過とともに変化する可能性がある場合など、他のケースにはあまり適していません。
- それぞれを使用する利点/欠点は何ですか?
- どのタイプを使用するかを知るための良い経験則は何でしょうか?