【问题标题】:C# Input Validation Check for positive numbersC# 输入验证检查正数
【发布时间】:2011-10-08 22:06:53
【问题描述】:

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

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

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

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

我在搞砸时遇到的常见编译器运行时错误是输入字符串格式不正确。我知道它是,这就是我正在检查的。 我知道这是超级基本的东西(这是我的第一个 C# 课程)。我在堆栈溢出方面进行了搜索,目前没有任何类似的解决方案对我有意义。我被告知要使用 decimal 类的 TryParse 方法,但感觉好像我用错了并且不完整。

提前感谢您的帮助。

【问题讨论】:

  • 顺便说一句,这不是编译器错误。这是一个运行时错误,因为它发生在运行时而不是编译时。
  • 感谢您的澄清。 -bg

标签: c# string decimal validation tryparse


【解决方案1】:

这里是你如何使用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);

【讨论】:

    【解决方案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-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-13
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 2018-08-18
      相关资源
      最近更新 更多