時々、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たとえば、お金やセントを表すために使用できることもわかっていますが、たとえば、精度が時間の経過とともに変化する可能性がある場合など、他のケースにはあまり適していません。
- それぞれを使用する利点/欠点は何ですか?
- どのタイプを使用するかを知るための良い経験則は何でしょうか?