質問

私は通貨をフォーマットしようとしている(スイスフランク - デCH)デフォルトのネット文化は何であると異なっているシンボル(CHF)と(スイスフラン。)。問題は、文化のためのNumberFormatが読み取り専用であるということです。

のCultureInfoとのNumberFormatを使用してこの問題を解決するための簡単な方法はありますか?私はCURRENCYSYMBOLをオーバーライドすることができますいくつかの方法はありますか?

例:

Dim newCInfo As CultureInfo = CultureInfo.GetCultureInfo(2055)
newCInfo.NumberFormat.CurrencySymbol = "CHF"
MyCurrencyText.Text = x.ToString("c",newCInfo)

このはNumberFormat.CurrencySymbolNumberFormatあるので**ReadOnly**の設定にエラーになります。

ありがとうございます。

役に立ちましたか?

解決

変更可能なバージョンを作成しますClone、上の

コールCultureInfo、その後、通貨記号を設定します。

あなたはより具体的な可能性:NumberFormatInfoを取得し、それだけでクローンを作成します。あなたは文化の中で何かを変更する必要がない限りは、IMO、もう少しエレガントです。

C#での例:

using System;

using System.Globalization;

class Test
{
    static void Main()
    {
        CultureInfo original = CultureInfo.GetCultureInfo(2055);
        NumberFormatInfo mutableNfi = (NumberFormatInfo) original.NumberFormat.Clone();
        mutableNfi.CurrencySymbol = "X";
        Console.WriteLine(50.ToString("C", mutableNfi));
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top