2 回答
TA贡献1841条经验 获得超3个赞
如果您只担心货币符号,您可以轻松地将其设置为您喜欢的任何内容:
var format = (NumberFormatInfo)CultureInfo.CreateSpecificCulture("es-MX").NumberFormat.Clone();
format.CurrencySymbol = "US$";
decimal amount = 12.34m;
amount.ToString("C", format);
// OUTPUT:
// US$12.34
但通常还有更多的格式化货币值。如您所见,例如,由于特定的文化差异(如小数点、货币符号位置、间距等),该值在德国的格式会非常不同:
amount.ToString("C", CultureInfo.CreateSpecificCulture("de-DE"));
// OUTPUT:
// 12,34 €
TA贡献1828条经验 获得超13个赞
我不确定我是否理解您的问题,但例如,如果您希望将 adouble表示为不同国家/地区的货币,那么您需要为其提供不同的货币CultureInfo。
double foo = 3;
string fooGerman = foo.ToString("C", CultureInfo.GetCultureInfo("de-DE"));
string fooEnglish = foo.ToString("C", CultureInfo.GetCultureInfo("en-GB"));
Console.WriteLine(fooGerman);
Console.WriteLine(fooEnglish);
OUTPUT
3,00 €
£3.00
如果这还不够,您可以为给定CultureInfo的 in设置符号CultureInfo.NumberFormat.CurrencySymbol,您可以为 the 创建自己IFormatProvider的ToString()或创建自己的CultureInfo.
- 2 回答
- 0 关注
- 134 浏览
添加回答
举报