我使用 new CultureInfo("fr-FR") 创建了一个 CultureInfo 对象。现在我有一个号码,我想调用 .ToString("C", FrenchCultureInfo)。生成的字符串将 € 放在数字之后。为什么?
CultureInfo french = new CultureInfo("fr-FR");
double value = 1234.56;
string output = value.ToString("C", french);//output = "1 234,56 €"
据我所知,欧元需要在左侧,而我的业务要求要求它在左侧。但是,无法以编程方式设置此值。
关于如何轻松设置此值的任何想法?我已经开始采用美国文化对象并将法国文化中的所有内容复制到它,因为我们仍然需要所有其他法国设置,除了正确值上的欧元。但这种方法非常耗时且令人沮丧。
谢谢!
最佳答案
克隆原始文件然后修改它:
CultureInfo french = new CultureInfo("fr-FR");
french = (CultureInfo) french.Clone();
// Adjust these to suit
french.NumberFormat.CurrencyPositivePattern = 2;
french.NumberFormat.CurrencyNegativePattern = 2;
double value = 1234.56;
string output = value.ToString("C", french);//output = "€ 1 234,56"
请注意,这只会影响特定的 CultureInfo
对象,而不是一般为法语获得的对象 - 因此您需要确保在任何地方都使用它。
关于c# - 更改 System.Globalization.NumberFormatInfo 中的货币符号位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1446273/