【问题标题】:converting string from input to decimal property将字符串从输入转换为十进制属性
【发布时间】:2013-06-05 22:46:25
【问题描述】:

我正在从 winform 获取用户输入。其中一个输入是十进制。

我应该将此值转换为十进制属性。

我的文本框是txtPrice,属性是myArticle.Price,所以我这样尝试

myArticle.Price = decimal.Parse(txtPrice.ToString(), CultureInfo.InvariantCulture);

我遇到了运行时异常

输入字符串的格式不正确。

【问题讨论】:

  • 除了使用.Text(如下所述),您应该考虑使用decimal.TryParse,并处理用户输入非数字值的情况(向他们显示错误消息,例如)。

标签: c# .net winforms


【解决方案1】:

我想你想要txtPrice.Text 属性而不是.ToString()

【讨论】:

    【解决方案2】:

    大多数人都会建议 tryParse

    if(decimal.TryParse(txtPrice.Text, out myArticle.Price))
    {
        // your string was in the incorrect format
    }
    

    【讨论】:

    • 在这种情况下如何使用 Cultureinfo.InvariantCulture?
    【解决方案3】:

    使用TextBoxText属性

    myArticle.Price = decimal.Parse(txtPrice.Text, CultureInfo.InvariantCulture);
    

    【讨论】:

      猜你喜欢
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 2011-04-09
      • 1970-01-01
      • 2013-02-07
      相关资源
      最近更新 更多