我有一個包含金額和貨幣代碼(美元,日元,加元,歐元等)的費用表,並且正在尋找正確格式化貨幣的最簡單方法。使用我的本地文化代碼(美國),並採取我的decimal.ToString(「C」)得到0.00美元的輸出,但我想正確的貨幣符號和基於代碼的小數位數。根據貨幣代碼將貨幣格式設置爲貨幣
是否存在這樣的庫?我當然可以爲每一個寫一個switch語句和自定義規則,但是認爲這一定是以前完成的。
更新:
我修改喬恩·B的示例代碼如下
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(貨幣[ 「JPY」]),以及格式輸出我的本地上下文中的逗號分隔符,但自動放置正確的貨幣符號和小數位。
讓我知道是否有人有這樣做的更清潔的方法,或者我會標記喬恩的答案很快就是正確的。
@AakashM - 事實上它確實存在。它被稱爲'CultureInfo'。 –
撤回我以前的評論,我注意到['RegionInfo'知道區域貨幣的貨幣代碼](http://msdn.microsoft.com/zh-cn/library/system.globalization.regioninfo.isocurrencysymbol.aspx),所以框架確實有這些知識。我懷疑你將不得不迭代,因爲我沒有看到任何基於貨幣代碼的查找。 – AakashM
@Ramhound CultureInfo告訴你如何在給定的文化中格式化貨幣數量。它沒有告訴你日元的符號是¥。 – AakashM