如何设置CURRENCYSYMBOL上只读CultureInfo.NumberFormat?
-
11-09-2019 - |
题
我试图格式化货币(瑞士弗兰克 - 德-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));
}
}
不隶属于 StackOverflow