我试图格式化货币(瑞士弗兰克 - 德-CH)用一个符号(CHF)是不同的,默认的.Net文化是什么(SFR)。的问题是,对于培养物中的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,只克隆这一点。这是稍微更优雅,国际海事组织,除非你需要改变任何东西的文化。

实施例中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