8

国の自国通貨フォーマットを使用して通貨をフォーマットしたいアプリケーションがあります。問題は、特定の国では複数の通貨を使用していますが、.NETでは国ごとに1つの通貨しか割り当てられていないことです。たとえば、ルーマニアではEURRONを使用しています。.NETから通貨情報を取得すると:

var cultureInfo = new CultureInfo("ro-RO");
Console.WriteLine("cultureInfo.NumberFormat.CurrencySymbol);

出力はleuRON通貨タイプであるです。

.NETでこの場合のEURを取得するにはどうすればよいですか?3文字のISO通貨コード(EUR)と国の言語(ro-RO)がありますが、この情報を使用して正しい形式のユーロ通貨文字列を取得する方法がわかりません。

4

2 に答える 2

1

通貨記号をカスタム記号に置き換えることができます(この場合はleuからeuro)

NumberFormatInfo LocalFormat = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone();
LocalFormat.CurrencySymbol = "€";

decimal money = 100;
Console.WriteLine(money.ToString("c", LocalFormat));
于 2012-06-20T00:31:14.780 に答える
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

于 2012-06-20T01:39:31.783 に答える