フロントエンドに Javascript、中間層に C#、DB に Oracle 9i を使用しています。
小数点以下 2 桁の数値を通貨にフォーマットする際のベスト プラクティスは何ですか? また、これら 3 つの層の中でどの層を優先する必要がありますか?
ユーザーは、アプリケーションのいくつかの画面でこれらの金額を編集できることに注意してください。
フロントエンドに Javascript、中間層に C#、DB に Oracle 9i を使用しています。
小数点以下 2 桁の数値を通貨にフォーマットする際のベスト プラクティスは何ですか? また、これら 3 つの層の中でどの層を優先する必要がありますか?
ユーザーは、アプリケーションのいくつかの画面でこれらの金額を編集できることに注意してください。
実用的である限りユーザーの近くで行うと思います。DBはユーザーのロケールを認識しないため、とにかくデータベースにはありません。
更新:通貨の書式設定を行うときは、実際に正しい情報をユーザーに表示していることに注意してください。通貨の書式設定は、通貨換算と同じではありません...
10 進数のストレージは、2 桁よりも高い精度にすることができます。C# と Javascript について言及されているので、フロントエンドに ASP.NET を使用していると推測できます。
通貨の表示は、ユーザーのロケール/カルチャ情報に基づいて表示するために、ASP.NET コードで処理する必要があります。
グリッドビューやその他の表示コントロールについては、C# で文字列書式設定オプションを使用{0:c}
して、正しい記号と小数点以下 2 桁で通貨を表示できます。
データに対して数学演算を実行する場合は、Javascript で書式設定を行い、通貨記号を追加する方がはるかに優れています。