読み取り専用CultureInfo.NumberFormatにCURRENCYSYMBOLを設定するには?
-
11-09-2019 - |
質問
私は通貨をフォーマットしようとしている(スイスフランク - デCH)デフォルトのネット文化は何であると異なっているシンボル(CHF)と(スイスフラン。)。問題は、文化のためのNumberFormatが読み取り専用であるということです。
のCultureInfoとのNumberFormatを使用してこの問題を解決するための簡単な方法はありますか?私はCURRENCYSYMBOLをオーバーライドすることができますいくつかの方法はありますか?
例:
Dim newCInfo As CultureInfo = CultureInfo.GetCultureInfo(2055)
newCInfo.NumberFormat.CurrencySymbol = "CHF"
MyCurrencyText.Text = x.ToString("c",newCInfo)
このはNumberFormat.CurrencySymbol
はNumberFormat
あるので**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));
}
}
所属していません StackOverflow