用千位分隔符将字符串值转换为十进制?

这可能是一个非常简单的问题。 假设文本框显示值10,000.12,当用户错误地编辑数据时,他删除前两个数字,如000.12,并在计算中使用此文本框,然后它给出一个例外。 我想要一个只是validation文本框。

例如:string str =“,100.12;” 转换为十进制数= 100.12;

任何的想法?。

当用户删除任何千位分隔符时,它仅显示整数。

这很混乱了,我不确定你们所有的字符串是否看起来都一样,但是如果他们这样做可能会有所帮助:

 string str = ",0,100.12"; decimal number; bool converted = decimal.TryParse(str.Substring(str.LastIndexOf(",") + 1), out number); 

converted的变量将告诉您字符串是否已转换,并且您不会例外。

祝好运!

如果我理解了这个问题,你想要删除所有阻止解析例程失败的字符。

 string str = ",0,100.12"; var modified = new StringBuilder(); foreach (char c in str) { if (Char.IsDigit(c) || c == '.') modified.Append(c); } decimal number= decimal.Parse(modified.ToString()); 
 string a = "100.12"; decimal b = Convert.ToDecimal(a); 
 string str = ",0,100.12;"; var newstr = Regex.Replace(str,@"[^\d\.]+",""); decimal d = decimal.Parse(newstr, CultureInfo.InvariantCulture);