【问题标题】:Convert a string to Decimal(10,2)将字符串转换为十进制(10,2)
【发布时间】:2012-08-14 05:15:42
【问题描述】:

如何在 C# 中将字符串转换为 Decimal(10,2)?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    查看Decimal.TryParse,尤其是当字符串来自用户时。

    如果字符串有任何可能无法转换为十进制,您将需要使用TryParseTryParse 允许您测试转换是否可以在不引发异常的情况下进行。

    【讨论】:

    【解决方案2】:

    你必须小心,因为有些文化使用点作为千位分隔符,逗号作为小数分隔符。

    我对安全字符串到十进制转换的建议:

        public static decimal parseDecimal(string value)
        {
            value = value.Replace(" ", "");
            if (System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator == ",")
            {
                value = value.Replace(".", ",");
            }
            else
            {
                value = value.Replace(",", ".");
            }
            string[] splited = value.Split(System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0]);
            if (splited.Length > 2)
            {
                string r = "";
                for (int i = 0; i < splited.Length; i++)
                {
                    if (i == splited.Length - 1)
                        r += System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
                    r += splited[i];
                }
                value = r;
            }
            return decimal.Parse(value);
        }
    

    循环是在字符串同时包含小数和千位分隔符的情况下

    【讨论】:

      【解决方案3】:

      试试:

      string test = "123";
      
      decimal test2 = Convert.ToDecimal(test);
      
      //decimal test2 = Decimal.Parse(test);
      
      //decimal test2;
         // if (decimal.TryParse(test, out result))
      //{ //valid }
         //else
      
         //{ //Exception }
      
      labelConverted.Text = test2.toString();
      

      Decimal Examples

      Difference between Convert.ToDecimal(string) & Decimal.Parse(string)

      问候

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-09
        • 1970-01-01
        • 2013-02-07
        • 2012-02-03
        • 2014-12-04
        相关资源
        最近更新 更多