我是新手,所以请耐心等待,我对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();
}
答案 0 :(得分:6)
TextBox.Text
属性返回String
,无法与0.5
,double
对象进行比较。使用您的代码将引发错误
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.TryParse
将string
解析为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语句必须在函数内部,否则代码将无法编译。