如果文本框中的数字更大

时间:2013-12-03 20:28:26

标签: c# visual-studio if-statement

我是新手,所以请耐心等待,我对if声明有点麻烦。

如果textbox 2超过0.5,我想在文本框1中打印一条消息。任何人都可以帮忙。

class Product
{
    public string collectmessage1()
    {
        return "Collect your product";
    }

    if (txtMoney.Text > 0.5)
    {
        Product cokecollect;
        cokecollect = new Product();

        txtProducts.Text = cokecollect.collectmessage1();
    }

5 个答案:

答案 0 :(得分:6)

TextBox.Text属性返回String,无法与0.5double对象进行比较。使用您的代码将引发错误

  

Error1 Operator'>'不能应用于'string'和'double'类型的操作数

在比较之前将文本框的text属性返回的字符串解析为double,您将摆脱此错误。正如Velous所说,在格式异常的情况下,TryParse是更好的选择。

double no;
bool valid = double.TryParse(txtMoney.Text, out no);
if (valid && no > 0.5) {

       Product cokecollect;
       cokecollect = new Product();

      txtProducts.Text = cokecollect.collectmessage1();
}

答案 1 :(得分:3)

您可以使用double.TryParsestring解析为double

double result = 0.0;
if (double.TryParse(txtMoney.Text, out result) &&  result > 0.5)
{

   Product cokecollect;
   cokecollect = new Product();

   txtProducts.Text = cokecollect.collectmessage1();

}

答案 2 :(得分:1)

试试这个:

if (decimal.Parse(txtMoney.Text) > 0.5m)
{
     Product cokecollect;
     cokecollect = new Product();

     txtProducts.Text = cokecollect.collectmessage1();
}

为了防止货币格式不正确时出现异常,您可以改为使用decimal.TryParse方法:

decimal money = 0m;
decimal.TryParse(txtMoney.Text, out money);
if (money > 0.5m)
{
         Product cokecollect;
         cokecollect = new Product();

         txtProducts.Text = cokecollect.collectmessage1();
}

答案 3 :(得分:1)

由于它是TextBox而你允许用户输入,我个人会使用double.TryParse代替double.parse

double myNumber;

bool isValid = double.TryParse(textBox1.Text, out myNumber);

if (isValid)
{
    if (myNumber > 0.5)
    { 
        ...
    }
}

这样,如果用户输入了不好的内容(例如字母),则不会出现异常。

答案 4 :(得分:0)

你的if语句必须在函数内部,否则代码将无法编译。