System.Globalization.NumberFormatInfoの通貨記号の場所の変更
-
22-07-2019 - |
質問
新しい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
オブジェクトにのみ影響し、一般的なフランス語用に取得されたオブジェクトには影響しないことに注意してください。したがって、どこでも使用することを確認する必要があります。
所属していません StackOverflow