如何在使用CultureInfo时在数字的前面显示欧元符号?
所以我想尝试在C#中显示货币,发现CultureInfo,唯一的事情是,没有办法在数字的前面显示欧元符号,而不是从我所看到和阅读的内容。如何在使用CultureInfo时在数字的前面显示欧元符号?
基本上这样的:
float f = 100.50; MoneyAmount.Text = f.ToString("C", new CultureInfo("en-GB"));
显示:£100.50
这样的:
float f = 100.50; MoneyAmount.Text = f.ToString("C", new CultureInfo("en-US"));
会显示:$ 100.50
但这:
float f = 100.50; MoneyAmount.Text = f.ToString("C", new CultureInfo("fr-FR"));
显示:100.50€
有没有办法为fr-FR
显示这样的货币:€100.50?
回答:
您可以设置NumberFormat.CurrencyPositivePattern
和CultureInfo
实例NumberFormat.CurrencyPositivePattern
:
float f = 100.50f; var culture = new CultureInfo("fr-FR");
culture.NumberFormat.CurrencyPositivePattern = 0;
culture.NumberFormat.CurrencyNegativePattern = 2;
culture.NumberFormat.CurrencyDecimalSeparator = CultureInfo.InvariantCulture.NumberFormat.CurrencyDecimalSeparator;
Console.WriteLine(f.ToString("C", culture));
打印
€100.50
回答:
您可以自定义的CultureInfo;
var frenchCulture = new CultureInfo("fr-FR"); frenchCulture.NumberFormat.CurrencyPositivePattern = 0;
frenchCulture.NumberFormat.CurrencyNegativePattern = 2;
frenchCulture.NumberFormat.CurrencyDecimalSeparator = ".";
double value = 100.50;
Console.WriteLine(value.ToString("C", frenchCulture)); // Output : €100.50
value = -100.50; //For negative currency
Console.WriteLine(value.ToString("C", frenchCulture)); // Output : €-100.50
回答:
六条与评论说:“把en-FR
而不是fr-FR
”,所以它看起来是这样的:
MoneyAmount.Text = f.ToString("C", new CultureInfo("en-FR"));
谢谢阿德里安,该诀窍。我不认为en-FR
存在,因为我发现的唯一的东西是fr-FR
。
回答:
你可以在你的CultureInfo使用上的NumberFormatInfo类CurrencyPositivePattern 属性。当使用值2时,它会在数字前改变货币符号的位置。
以上是 如何在使用CultureInfo时在数字的前面显示欧元符号? 的全部内容, 来源链接: utcz.com/qa/258218.html