在System.Globalization.NumberFormatInfo中更改货币符号位置

Eri*_*nes 3 c# globalization .net-3.5

我使用新的CultureInfo("fr-FR")创建了一个CultureInfo对象.现在我有一个我要调用的号码.ToString("C",FrenchCultureInfo).结果字符串将€AFTER数字放入.为什么?

CultureInfo french = new CultureInfo("fr-FR");
double value = 1234.56;
string output = value.ToString("C", french);//output = "1 234,56 €"
Run Code Online (Sandbox Code Playgroud)

从我所见过的,欧元需要在左边,我的业务要求要求它在左边.但是,无法以编程方式设置此值.

关于如何轻松设置此值的任何想法?我已经开始接受一个美国文化对象并将所有东西从法国文化复制到它,因为我们仍然想要所有其他法国设置,除了正确价值的欧元.但是这种方法非常耗时且令人沮丧.

谢谢!

Jon*_*eet 6

克隆原件然后修改它:

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"
Run Code Online (Sandbox Code Playgroud)

请注意,这只会影响该特定CultureInfo对象,而不是通常为法语获取的对象 - 因此您需要确保在任何地方都使用它.