3

我使用 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 €"

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

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

谢谢!

4

1 回答 1

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对象,而不是一般为法语获得的对象-因此您需要确保在任何地方都使用它。

于 2009-09-18T18:52:15.993 回答