金額と通貨コード(USD、JPY、CAD、EURなど)の料金表があり、通貨を適切にフォーマットする最も簡単な方法を探しています。ローカルカルチャーコード(USA)を使用し、decimal.ToString( "c")を取得すると、$ 0.00の出力が得られますが、コードに基づいた正しい通貨記号と小数点以下の桁数が必要です。
このためのライブラリはありますか?もちろん、それぞれのswitchステートメントとカスタムルールを作成することもできますが、これは以前に行われたに違いないと思いました。
アップデート:
JonBのサンプルコードを次のように変更しました
static IDictionary<string, string> GetCurrencyFormatStrings()
{
var result = new Dictionary<string, string>();
foreach (var ci in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
try
{
var ri = new RegionInfo(ci.Name);
result[ri.ISOCurrencySymbol] =
string.Format("{0}#,#0.{1};({0}#,#0.{1})",
ri.CurrencySymbol,
new string('0',
i.NumberFormat.CurrencyDecimalDigits));
}
catch { }
}
return result;
}
これにより、Amount.ToString(Currency ["JPY"])に移動するだけで、ローカルコンテキストでコンマ区切り文字が出力されますが、正しい通貨記号と小数点以下の桁数が自動的に入力されます。
誰かがこれを行うためのよりクリーンな方法を持っているかどうか私に知らせてください、さもなければ私はジョンの答えをまもなく正しいとマークします。