📅  最后修改于: 2023-12-03 14:39:48.771000             🧑  作者: Mango
在C#中,我们经常需要处理货币值(如价钱、费用等)。为了正确显示货币值,C#提供了多种格式化货币值的方法。
要格式化货币值,可以使用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(美元符号,无小数)
默认情况下,货币符号使用当前区域设置。如果你想指定特定的货币符号,可以使用System.Globalization.CultureInfo类。例如:
decimal money = 99.99M;
CultureInfo culture = new CultureInfo("zh-CN");
culture.NumberFormat.CurrencySymbol = "¥";
Console.WriteLine(money.ToString("C", culture)); // ¥99.99(人民币符号)
可以通过指定格式字符串来控制小数部分的显示和舍入方式。例如:
decimal money = 99.997M;
Console.WriteLine(money.ToString("C2")); // $99.99
Console.WriteLine(money.ToString("C2", MidpointRounding.AwayFromZero)); // $100.00
MidpointRounding.AwayFromZero表示四舍五入到最接近的整数。如果为正,使用较远方的数字;如果为负,则使用较靠近的数字。
在WPF和WinForms中,我们可以使用标准控件来格式化货币值。例如,在WPF中可以使用TextBlock控件:
<TextBlock Text="{Binding Price, StringFormat=C}" />
在WinForms中可以使用Label控件:
label1.Text = money.ToString("C");
C#提供了多种格式化货币值的方法,可以根据需求选择合适的方法。如果需要指定货币符号、小数位数或舍入方式,可以使用格式字符串或CultureInfo类。在WPF和WinForms中,我们可以使用标准控件来格式化货币值。