这可能是一个非常简单的问题。 假设文本框显示值10,000.12,当用户错误地编辑数据时,他删除前两个数字,如000.12,并在计算中使用此文本框,然后它给出一个例外。我想要一个只是验证的文本框。
例如: string str =“,100.12;” 转换成 十进制数= 100.12;
任何想法?。
当用户删除任何千位分隔符时,它仅显示整数。
答案 0 :(得分:1)
这很混乱了,我不确定你们所有的字符串看起来是否一样,但是如果他们这样做可能会有这个诀窍:
string str = ",0,100.12";
decimal number;
bool converted = decimal.TryParse(str.Substring(str.LastIndexOf(",") + 1), out number);
变量converted
将告诉您字符串是否已转换,并且您不会例外。
答案 1 :(得分:1)
如果我理解了这个问题,你想要删除所有会阻止解析例程失败的字符。
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());
答案 2 :(得分:0)
string a = "100.12";
decimal b = Convert.ToDecimal(a);
答案 3 :(得分:0)
string str = ",0,100.12;";
var newstr = Regex.Replace(str,@"[^\d\.]+","");
decimal d = decimal.Parse(newstr, CultureInfo.InvariantCulture);