2011-10-08 99 views
1

我正在学习C#,并且遇到了一个问题,我必须检查用户是否输入了有效货币金额。即没有字母字符也没有负数。C#输入验证检查正数

到目前为止,除了特定的输入验证,我已经完成了程序中的所有内容。

将输入转换为数字值我有: originalRate = Double.Parse(txtValue.Text);

然后在下面,我很难过,我一直在搞: bool isValid = Double.TryParse(txtValue.Text,);

共同编译运行时错误,我得到,而瞎搞是输入字符串的不正确的格式。我知道这是我正在检查的内容。 我知道这是超级基本的东西(这是我的第一个C#类)。我已经在堆栈溢出问题上进行了搜索,并且在这一点上没有任何类似的解决方案对我很有意义。我被告知使用TryParse十进制类的方法,但感觉好像我使用它错误和不完整。

非常感谢您的帮助。

+1

这不是BTW编译错误。这是运行时错误,因为它发生在运行时而不是编译时。 – Andreas

+0

谢谢澄清。 -bg – needsurf

回答

3

这里是你如何使用double.TryParse()

double d; 
bool isValid = Double.TryParse(txtValue.Text, out d); 

的MDSN页面有一些例子。

要分析货币字符串,你可以使用的double.TryParse()

第二超载和尝试像

double d; 
bool isValid = double.TryParse(txtValue.Text, NumberStyles.Currency, CultureInfo.GetCultureInfo("en-US"), out d); 
+0

就是这样!哇谢谢你。很棒。 – needsurf

2
double result; 

if (double.TryParse(txtValue.text, out result)) 
{ 
    // The user typed a valid number. 
    // Do something with it (it’s in “result”). 
} 
else 
{ 
    // The user typed something invalid. 
    MessageBox.Show("Please type in a number."); 
}