我正在学习C#并遇到一个问题,我必须检查用户是否输入了VALID货币金额。即没有字母字符,也没有负数。
到目前为止,我已完成程序中的所有内容,除了特定的输入验证。
将输入转换为数字值我有: originalRate = Double.Parse(txtValue.Text);
然后低于我难倒,我一直在搞乱: bool isValid = Double.TryParse(txtValue.Text,);
我遇到的常见的编译器运行时错误是输入字符串的格式不正确。据我所知,这就是我要检查的内容。
我知道这是超级基本的东西(这是我的第一个C#类)。我已经搜索了堆栈溢出,此时没有一个类似的解决方案对我有意义。我被告知使用十进制类的 TryParse 方法,但感觉好像我使用它错误且不完整。
提前感谢您的帮助。
答案 0 :(得分: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);
答案 1 :(得分: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.");
}