gpt4 book ai didi

c# - 如何使用 NumericUpDown 计算文本框值的总数?

转载 作者:行者123 更新时间:2023-12-03 20:21:20 26 4
gpt4 key购买 nike

我正在尝试制作一个小披萨订单,但我在计算时遇到了问题。选择披萨后,单价和合计计算都可以,但是选择加法就引入了问题。更改 NumericUpDown 值后,卡路里不正确(所有单位都具有不变的价格和卡路里)。 NumericUpDown 的名称是 numberofunit。我如何计算它们?

if (pepper.Checked)
{
string peppereklendi =
Convert.ToString(Convert.ToDouble(unitprice.Text)+ pepperprice);

unitprice.Text = peppereklendi;

total.Text =
Convert.ToString(Convert.ToDecimal(unitprice.Text) * numberofunit.Value);

string pepperkaloriekle =
Convert.ToString(Convert.ToInt16(gizlikalori.Text) + pepperkalori);

gizlikalori.Text = pepperkaloriekle;

amountofcalorie.Text =
Convert.ToString(Convert.ToDecimal(gizlikalori.Text) * numberofunit.Value);
}
else
{
string peppereklendi = unitprice.Text;

unitprice.Text =
Convert.ToString(Convert.ToDouble(peppereklendi) - pepperprice);

total.Text = Convert.ToString(Convert.ToDecimal(unitprice.Text) * numberofunit.Value);

string pepperkaloriekle = gizlikalori.Text;

gizlikalori.Text =
Convert.ToString(Convert.ToDouble(pepperkaloriekle) - pepperkalori);

amountofcalorie.Text =
Convert.ToString(Convert.ToDecimal(gizlikalori.Text) * numberofunit.Value);
}

这段代码是pepper的复选框代码。

This is the form of my application.

最佳答案

您真的应该尝试将计算逻辑与 UI 逻辑(表单)分开。那么事情就会变得更加清晰:

// Get values from the text boxes
decimal up = Convert.ToDecimal(unitprice.Text);
decimal calories = Convert.ToDecimal(gizlikalori.Text);
decimal tot, totCalories;

// Do the calculation
if (pepper.Checked) {
up = up + pepperprice;
calories = calories + pepperkalori;
}
tot = up * numberofunit.Value;
totCalories = calories * numberofunit.Value;

// Assign the results to text boxes
unitprice.Text = up.ToString();
total.Text = tot.ToString();
gizlikalori.Text = calories.ToString();
amountofcalorie.Text = totCalories.ToString();

你做错了,如果没有选择胡椒,你从单价和单位卡路里中减去胡椒价格和胡椒卡路里。然而,单价(和卡路里)已经没有辣椒了!

我看不出你什么时候执行这个计算,但是如果你每次增加单位数时都执行它,那么你每次都会增加胡椒价格!为基本单价设置一个单独的变量可能会更好,该变量在您检查添加时保持不变。然后总是从基本单价开始计算。

此外,您混合了许多不同的数字类型。这没有意义。

进一步增强代码的下一步是为计算创建一个单独的类。您还可以使用数据绑定(bind)。这将完全消除进行转换的需要。请参阅我对以下帖子的回答: manipulating-textbox-variables-in-calculations

关于c# - 如何使用 NumericUpDown 计算文本框值的总数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8773203/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com