我正在与一个返回货币(System.Decimal
)和货币代码的数据库集成。货币代码是"USD"
,"GBP"
甚至"FRF"
等字符串。
mscorlib内置了哪些内容可以帮助我格式化这些货币?我首先考虑设置数据库货币代码和CultureInfo
之间的映射,但我不知道如何处理FRF,因为如果我使用"fr-FR"
,它将格式化为欧元而不是法郎。 / p>
我们必须支持的完整货币符号列表是:
FRF
CHF
NZD
IN2
SAR
SEK
EUR
MXP
DKK
GBP
AUD
IN1
AED
CAD
NOK
INR
USD
PLN
答案 0 :(得分:4)
我首先考虑在数据库货币代码和CultureInfo之间建立映射,但我不知道如何处理FRF,因为如果我使用“fr-FR”,它将格式化为欧元而不是法郎。
我会采用这种方法,但为FRF制作一个自定义IFormatProvider
来执行您选择的格式化。这就像正确构建NumberFormatInfo一样简单。
答案 1 :(得分:3)
你可以replace the default currency并仍然使用框架......
using System;
using System.Globalization;
using System.Threading;
public class EuroLocalSample
{
public static void Main()
{
// Create a CultureInfo object for French in France.
CultureInfo FrCulture = new CultureInfo("fr-FR");
// Set the CurrentCulture to fr-FR.
Thread.CurrentThread.CurrentCulture = FrCulture;
// Clone the NumberFormatInfo object and create
// a new object for the local currency of France.
NumberFormatInfo LocalFormat =
(NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
// Replace the default currency symbol with the local
// currency symbol.
LocalFormat.CurrencySymbol = "F";
int i = 100;
// Display i formatted as the local currency.
Console.WriteLine(i.ToString("c", LocalFormat));
// Display i formatted as the default currency.
Console.WriteLine(i.ToString("c", NumberFormatInfo.CurrentInfo));
}
}
答案 2 :(得分:2)
这是一个非常小的清单。我只是手动设置映射。