web-dev-qa-db-ja.com

現在の文化から通貨を取得しますか?

アプリのカルチャ設定から現在の情報を動的に取得する方法はありますか?基本的に、ユーザーが文化を米国に設定している場合、通貨がドルであることを知りたい場合、または英国に設定している場合は、ポンドなどを使用します。

これは、支払いが行われているときにこの情報をPaypalに送信できるようにするためです。

50
leen3o

RegionInfo.ISOCurrencySymbolプロパティを使用します。例えば:

  var ri = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID);
  Console.WriteLine(ri.ISOCurrencySymbol);

出力:「USD」

80
Hans Passant

CultureInfo.CurrentCulture.NumberFormat.CurrencySymbolからsymbolを取得できますが、これで十分かと思います。文化ごとに個別のリストを維持する必要がある場合があります。または、ユーザーが支払いたいものをあなたに伝えるようにします(たとえば、彼らは家から離れているかもしれないので、ホテルのラウンジのPCの文化ではないクレジットカード)

40
Marc Gravell

CultureInfo ciオブジェクトを取得したら、次のように尋ねることができます。

ci.NumberFormat.CurrencySymbol

現在の文化では、あなたは単に

CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol
26
Fadrian Sudaman
string isoCurrencySymbol = RegionInfo.CurrentRegion.ISOCurrencySymbol;
4
Cornel

基本的にCultureInfoクラスを使用できます

CultureInfo ci = new CultureInfo(UICulture);
var symbol = ci.NumberFormat.CurrencySymbol;
2
Jan Remunda
    public static string GetCurrencySymbol(string currency)
    {
        if (currency == null) return "";
        if (currency == "") return "";
        int i = 0;
        var regionInfo = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID);
        foreach (var cultureInfo in CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures))
        {
            if (!cultureInfo.Equals(CultureInfo.InvariantCulture))
            {
                var regionCulture = new RegionInfo(cultureInfo.LCID);

                    if(regionCulture.ISOCurrencySymbol == currency)
                    {
                        //list.Add(regionCulture);
                        regionInfo = regionCulture;
                    }
                }
        }
1
Mike

http://help.Outlook.com/en-us/140/system.globalization.regioninfo.currencynativename(VS.85).aspx

RegionInfo.CurrencyNativeName、RegionInfo.CurrencyEnglishName、またはRegionInfo.ISOCurrencySymbolが必要です。

0
Jeroen