按下按钮的每次迭代累计总数

时间:2013-04-28 23:09:56

标签: c#

我正在尝试将数量和价格文本框中的值相乘,然后将其传递到每次按下添加按钮时将更新的总文本框中。以下是我到目前为止所尝试的内容。

如何在整个文本框中显示产品并累积产品?例如。在数量4和价格4它读取16然后如果我输入数量2和价格2它将读取20。

private void add_btn_Click(object sender, EventArgs e)
    {
        try
        {
            if (customer_textBox.Text == "")
            {
                MessageBox.Show(
                    "Please enter valid Customer");
            }
            if (quantity_textBox.Text == "")
            {
                MessageBox.Show(
                    "Please enter valid Quantity");
            }
            if (price_per_item_textBox.Text == "")
            {
                MessageBox.Show(
                    "Please enter valid Price");
            }
            else
            {
                decimal total = Decimal.Parse(total_textBox.Text);
                total = int.Parse(quantity_textBox.Text) * int.Parse(price_per_item_textBox.Text);
                total += total;
                total_textBox.Text = total.ToString();
            }
            quantity_textBox.Clear();
            customer_textBox.Clear();
            price_per_item_textBox.Clear();
            item_textBox.Clear();
        }
        catch (FormatException)
        {

        }
        total_textBox.Focus();


    }

1 个答案:

答案 0 :(得分:3)

更改此

decimal total = Decimal.Parse(total_textBox.Text);
total = int.Parse(quantity_textBox.Text) * int.Parse(price_per_item_textBox.Text);
total += total;
total_textBox.Text = total.ToString();

到这个

total = currentTotal + (decimal.Parse(quantity_textBox.Text) * decimal.Parse(price_per_item_textBox.Text));
total_textBox.Text = total.ToString("C");

并创建一个类级变量private decimal currentTotal;

不需要第一行,因为您只需重新分配第四行中文本框的值。我假设每件商品的价格是decimal价值(例如1.99美元)。将其解析为int将失去精度(例如,1.99美元将变为1)。将int乘以int也会返回int,$ 1.99 * 2将变为1 * 2,这将只是2而不是$ 3.98。