如何在使用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.CurrencyPositivePatternCultureInfo实例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

回到顶部