我有一个应用程序,我想使用国家/地区的本机货币格式来格式化货币。问题是,某些国家/地区使用多种货币,但.NET仅为每个国家/地区分配一种货币。例如,罗马尼亚使用 EUR 和 RON 。当我从.NET获得货币信息时:
var cultureInfo = new CultureInfo("ro-RO");
Console.WriteLine("cultureInfo.NumberFormat.CurrencySymbol);
输出为leu
,即 RON 货币类型。
如何在.NET中获得此案例的欧元?我有3个字母的ISO货币代码( EUR )和国家/地区语言( ro-RO ),但我不知道如何使用此信息来正确获取格式化的欧元货币字符串。
答案 0 :(得分:1)
您可以使用自定义货币符号替换货币符号(在这种情况下为leu to euro)
NumberFormatInfo LocalFormat = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
LocalFormat.CurrencySymbol = "€";
decimal money = 100;
Console.WriteLine(money.ToString("c", LocalFormat));
答案 1 :(得分:0)
我以为我会给你一个静态助手类答案如下:
static class CurrencySymbolHelper
{
public static string GetCurrencySymbol(CultureInfo cultureInfo, bool getAlternate)
{
if (cultureInfo.Name == "ro-RO" && getAlternate)
return "EUR";
return cultureInfo.NumberFormat.CurrencySymbol;
}
}
您可以将您想要的任何变量传递给方法,并在其中执行您希望的任何操作。请致电如下:
var cultureInfo = new CultureInfo("ro-RO");
Console.WriteLine(CurrencySymbolHelper.GetCurrencySymbol(cultureInfo,false));
问题是,如果您想要获取货币信息而不是cultureInfo.NumberFormat.CurrencySymbol