如何在使用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
