質問

新しいCultureInfo(" fr-FR")を使用してCultureInfoオブジェクトを作成しました。これで、.ToString(" C&quot ;, 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 オブジェクトにのみ影響し、一般的なフランス語用に取得されたオブジェクトには影響しないことに注意してください。したがって、どこでも使用することを確認する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top