2009-09-18 3 views
3

Я создал объект CultureInfo, используя новую CultureInfo ("fr-FR"). Теперь у меня есть номер, который я хочу вызвать. ToString («C», FrenchCultureInfo). Полученная строка помещает € AFTER в число. Зачем?Изменение значения валюты Обозначение символа в System.Globalization.NumberFormatInfo

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

Из всего, что я видел, евро должен быть слева, и мой бизнес-требования мандата, что она находится на левой стороне. Однако нет возможности программно установить это значение.

Любые идеи о том, как я могу легко установить это значение? Я начал принимать объект культуры США и копировать все, начиная от французской культуры, до тех пор, пока мы все еще не хотим, чтобы все другие французские настройки, за исключением евро, были правильными. Но этот метод очень трудоемкий и расстраивающий.

Спасибо!

ответ

6

Clone оригинала, а затем изменить его:

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 объект, а не один, полученный на французском языке в целом - так что вам нужно, чтобы убедиться, что вы используете его везде.

+0

Человек, единственное имущество, в котором я НЕ проверял. Спасибо, Джон! –

Смежные вопросы