1

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

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

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

然后在下面我被难住了,我一直在搞砸: bool isValid = Double.TryParse(txtValue.Text, );

我在搞砸时遇到的常见编译器运行时错误是Input string was not in a correct format。我知道它是,这就是我正在检查的。我知道这是超级基本的东西(这是我的第一个 C# 课程)。我在堆栈溢出方面进行了搜索,目前没有任何类似的解决方案对我来说很有意义。有人告诉我使用十进制类的TryParse方法,但感觉好像我使用它错误且不完整。

预先感谢您的帮助。

4

2 回答 2

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);
于 2011-10-08T22:09:34.663 回答
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.");
}
于 2011-10-08T22:10:34.613 回答