我是C#的新手,我正在尝试做一个简单的任务。我正在尝试为我的程序创建一个if语句,如果用户输入的数字小于100,它将乘以.1并在消息框中显示答案。但是每次我运行程序时,消息框都会给我0作为答案,而不是6.5作为65。我可能在这里的代码中缺少一些简单的东西,请看一下。
公共局部类Form1:表单 { 私人double discountAmt;
public Form1()
{
InitializeComponent();
}
private void DiscountCalculation(object sender, EventArgs e)
{
double Price = 0;
double.Parse(PriceBox.Text);
if (Price < 100)
{
discountAmt = (Price * .1);
MessageBox.Show(" The discount is " + discountAmt.ToString());
}
}
}
}
答案 0 :(得分:2)
看这行:
double.Parse(PriceBox.Text);
它解析文本框,但对结果不执行任何操作。您想要这个:
double Price = double.Parse(PriceBox.Text);
使用double.TryParse()
甚至更好,并且在赚钱时使用decimal
类型而不是double
。
private void DiscountCalculation(object sender, EventArgs e)
{
decimal Price = 0.0m;
if (decimal.TryParse(PriceBox.Text, out Price) && Price < 100)
{
discountAmt = (Price * .1);
MessageBox.Show($"The discount is {discountAmt}");
}
}