如何在C#中将字符串转换为十进制(10,2)?
答案 0 :(得分:4)
查看Decimal.TryParse,特别是如果字符串来自用户。
如果任何机会无法将字符串转换为Decimal,您将需要使用TryParse
。 TryParse
允许您测试转换是否有效而不会抛出异常。
答案 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();
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和千位分隔符
,则循环