在 C# 中显示货币

Posted

技术标签:

【中文标题】在 C# 中显示货币【英文标题】:Displaying currency in C# 【发布时间】:2011-03-05 09:52:56 【问题描述】:

我需要以美国货币格式显示数据值。这意味着 190.8 应显示为 $190.80。出于某种原因,我无法弄清楚如何做到这一点。有什么建议吗?

【问题讨论】:

【参考方案1】:

您可以像这样明确指定美国文化:

string.Format(CultureInfo.GetCultureInfo("en-US"), "0:C", decimalValue)

C 表示指定文化的默认货币格式,在这种情况下正是您所追求的。如果您想要使用欧洲大陆数字格式(逗号而不是句点)的美国货币符号,那么您的工作当然会更难......

【讨论】:

【参考方案2】:

Standard Numeric Format Strings

   decimal moneyvalue = 1921.39m;
    string html = String.Format("Order Total: 0:C", moneyvalue);
    Console.WriteLine(html);

double value = 12345.6789;
Console.WriteLine(value.ToString("C", CultureInfo.CurrentCulture));//CultureInfo.GetCultureInfo("en-US")
// current culture is English (United States):
//       $12,345.68

【讨论】:

【参考方案3】:
 decimal d = 190.8M;
 string displayData = d.ToString("c");

如果您的 CurrentCulture 已经是美国,则无需明确提供。

【讨论】:

【参考方案4】:
string usCurrency = (190.8m).ToString("c", CultureInfo.GetCultureInfo("en-US"));

【讨论】:

【参考方案5】:
String.Format("$0:n2", 190.8m);

【讨论】:

以上是关于在 C# 中显示货币的主要内容,如果未能解决你的问题,请参考以下文章

如何在显示标签中格式化货币

Developer Express XtraGrid - 不会显示货币。忽略显示格式

如何在我的应用中以用户的本地货币显示 android 应用价格?

Play 商店未在付款窗口中显示当地货币

codeigniter 在值后显示货币符号

如何确保 Intl.NumberFormat 在使用同一国家/地区时不显示货币代码?