这可能是一个非常简单的问题。假设文本框显示值 10,000.12,当用户错误地编辑数据时,他删除了前两个数字,如 ,000.12 并在计算中使用此文本框,然后它给出了异常。我想要一个刚刚验证的文本框。
例如:字符串 str = ",100.12;" 转换为十进制数 = 100.12;
任何想法?。
当用户删除任何千位分隔符时,它只显示整数。
这可能是一个非常简单的问题。假设文本框显示值 10,000.12,当用户错误地编辑数据时,他删除了前两个数字,如 ,000.12 并在计算中使用此文本框,然后它给出了异常。我想要一个刚刚验证的文本框。
例如:字符串 str = ",100.12;" 转换为十进制数 = 100.12;
任何想法?。
当用户删除任何千位分隔符时,它只显示整数。
如果我理解了这个问题,您想删除所有会阻止解析例程失败的字符。
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 str = ",0,100.12";
decimal number;
bool converted = decimal.TryParse(str.Substring(str.LastIndexOf(",") + 1), out number);
该变量converted
会告诉你你的字符串是否被转换并且你不会例外。
祝你好运!
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);