关于C语言中的if语句的简单问题

时间:2019-02-15 22:53:01

标签: c#

我是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());
        }


        }
    }
}

1 个答案:

答案 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}");
    }
}