2009-09-18 70 views
3

我使用新的CultureInfo(“fr-FR”)创建了一个CultureInfo对象。现在我有一个我想调用的数字.ToString(“C”,FrenchCultureInfo)。结果字符串将欧元后面的数字。为什么?在System.Globalization.NumberFormatInfo中更改货币符号位置

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

从我所见到的情况来看,欧元需要在左边,我的业务需求强制要求它在左边。但是,没有办法以编程方式设置此值。

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

谢谢!

回答

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" 

注意,这只会影响特定对象CultureInfo,不是一般的法国获得的一个 - 所以你需要确保你使用它到处。

+0

男人,我没有检查的一个属性。谢谢乔恩! – 2009-09-18 18:59:33