Parse value with Currency symbol

前端 未结 5 1980
耶瑟儿~
耶瑟儿~ 2021-01-21 13:58

I have looked to multiple SO questions on parsing currency, the best (recommended) way seems to be the one I\'m trying below:

var payout = decimal.Parse(\"$2.10\         


        
5条回答
  •  情书的邮戳
    2021-01-21 14:17

    You can try like this:

    decimal currencyValue;
    string inputCurrency = "$12.6";
    if (decimal.TryParse(inputCurrency, NumberStyles.Currency, CultureInfo.CreateSpecificCulture("en-US"), out currencyValue))
      {
          // proceed with currencyValue
      }
    else 
      {
          //Show error ; Conversion failed
      }
    

    For dealing with all currencies you can use the following:

            Dictionary currencyCulture = new Dictionary();
            currencyCulture.Add('$', "en-US");
            currencyCulture.Add('€', "en-IE");
            // populate all posible values here
            decimal currencyValue;
            string inputCurrency = "€2,66";
            char currencySymbol= inputCurrency.ToCharArray()[0];
            CultureInfo currentCulture= CultureInfo.CreateSpecificCulture(currencyCulture[currencySymbol]);
            if (decimal.TryParse(inputCurrency, NumberStyles.Currency, currentCulture, out currencyValue))
            {
                // proceed with currencyValue
            }
            else 
            {
             //Show error ; Conversion failed
            }
    

    You can choose culture Names from here

提交回复
热议问题