📜  c#中货币值的格式(1)

📅  最后修改于: 2023-12-03 14:39:48.771000             🧑  作者: Mango

C#中货币值的格式

在C#中,我们经常需要处理货币值(如价钱、费用等)。为了正确显示货币值,C#提供了多种格式化货币值的方法。

1.货币值的格式化

要格式化货币值,可以使用ToString方法,并指定货币格式。例如:

decimal money = 99.99M;
Console.WriteLine(money.ToString("C"));    // $99.99(美元符号)
Console.WriteLine(money.ToString("C3"));   // $99.990(美元符号,保留3位小数)
Console.WriteLine(money.ToString("C0"));   // $100(美元符号,无小数)
2.指定货币符号

默认情况下,货币符号使用当前区域设置。如果你想指定特定的货币符号,可以使用System.Globalization.CultureInfo类。例如:

decimal money = 99.99M;
CultureInfo culture = new CultureInfo("zh-CN");
culture.NumberFormat.CurrencySymbol = "¥";
Console.WriteLine(money.ToString("C", culture));    // ¥99.99(人民币符号)
3.指定小数位数和舍入方式

可以通过指定格式字符串来控制小数部分的显示和舍入方式。例如:

decimal money = 99.997M;
Console.WriteLine(money.ToString("C2"));                       // $99.99
Console.WriteLine(money.ToString("C2", MidpointRounding.AwayFromZero));      // $100.00

MidpointRounding.AwayFromZero表示四舍五入到最接近的整数。如果为正,使用较远方的数字;如果为负,则使用较靠近的数字。

4.使用标准控件

在WPF和WinForms中,我们可以使用标准控件来格式化货币值。例如,在WPF中可以使用TextBlock控件:

<TextBlock Text="{Binding Price, StringFormat=C}" />

在WinForms中可以使用Label控件:

label1.Text = money.ToString("C");
总结

C#提供了多种格式化货币值的方法,可以根据需求选择合适的方法。如果需要指定货币符号、小数位数或舍入方式,可以使用格式字符串或CultureInfo类。在WPF和WinForms中,我们可以使用标准控件来格式化货币值。