1

ほとんどが測定フォームである顧客モデルを作成する必要があります。

ユーザーに関する一般的な情報 (名前、年齢、性別など) と多くの測定値 (身長、体重、首回り、ウエストなど) を記録します。

アプリは国際的なユーザーを対象としているため、センチメートル/キログラムを使用することを好む人もいれば、インチ/ポンドを使用することを好む人もいます.

最善の方法は、すべてのデータを一貫した形式でデータベース (メートル法など) に保存し、コントローラー側ですべてを変換することだと思います。

レールでこれを取得する標準的な方法(または既存の宝石)はありますか? そうでない場合は、モデルに preferred_measure_type フィールドを作成してから、ユーザー設定ですべてのビューをレンダリングします。

また、浮動小数点数と小数を避け、データを整数 (私のシナリオではミリメートルとグラム) で保存し、アプリケーション側ですべての変換を行うのが賢明だと聞きました。それは良いアドバイスですか?

ありがとうございました

4

1 に答える 1

1

データを標準単位で保存してから、表示用に変換することをお勧めします。列の容量をオーバーフローすることなく、必要な詳細を取得できる最小のメジャーを使用してください。たとえば、シャツのサイズにはミリメートルが適切かもしれませんが、高速道路の測定には不適切であることが判明する場合があります。

フロートに関しては、これらは主に丸めの問題が原因で問題になります。通貨を扱う場合、わずかな差異でも問題が発生します。$2.00 に $2.00 を加えた値は、$3.9999917237 ではなく、常に $4.00 に等しくなければなりません。

そのような精度と一貫性が必要ない場合は、フロートで問題ありません。覚えておくべきことは、浮動小数点数は常に与えられた値の近似値であり、数値が大きくなるにつれて精度が低下するということです。つまりfloat、10 億の a は 1000 分の 1 の変化を正確に反映せず、それを表現するのに十分な精度がありません。

したがって、可能であれば、特定の単位を使用するなど、固定された場所のシステムを使用してください。必要に応じて浮動小数点値を使用しますが、常に表示のために適切に四捨五入してください。これらは常に近似値であり、正確ではないことに注意してください。

于 2012-12-05T15:36:25.620 に答える