将字符串转换为十进制(10,2)

时间:2011-03-10 23:48:39

标签: asp.net

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

3 个答案:

答案 0 :(得分:4)

查看Decimal.TryParse,特别是如果字符串来自用户。

如果任何机会无法将字符串转换为Decimal,您将需要使用TryParseTryParse允许您测试转换是否有效而不会抛出异常。

答案 1 :(得分:0)

尝试:

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)

此致

答案 2 :(得分:0)

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

我建议使用十进制转换的安全字符串:

    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);
    }

如果字符串包含decimal,decimal和千位分隔符

,则循环