我必须在标签中放置多个整数。有时一个,有时两个或更多,取决于计算。
这是改变货币的计算,它是必须在标签中显示的硬币值的数量。
例如:1 x€1,00 + 2 x€0,20 + 1 x€0,05
其中1,2和1是货币变动计算的总和。变更金钱必须尽可能少。
现在我的代码有一个while循环和一个label.content =
----------每次但是我知道如果第二个或者一个也给出了它,它总是显示最后的结果标签。
我怎样才能以最简单的方式解决这个问题?
提前谢谢!
private void btnBuy_Click(object sender, RoutedEventArgs e)
{
if (given < cost)
lblAction.Content = "Not enough money";
else
{
change = (given - cost);
lblChange.Content = "Terug: € " + change;
lblReport.Content = "Take";
lblAction.Content = "Take your beverage";
btnTakeBeverage.IsEnabled = true;
}
while (change >= 1M)
{
oneEuro++;
change -= 1M;
if (oneEuro > 0)
lblCalculatingchange.Content = oneEuro + " x € 1,00";
}
while (change >= 0.50M)
{
fiftyEurocent++;
change -= 0.50M;
if (fiftyEurocent > 0)
lblCalculatingchange.Content = fiftyEurocent + " x € 0,50";
}
while (change >= 0.20M)
{
twentyEurocent++;
change -= 0.20M;
if (twentyEurocent > 0)
lblCalculatingchange.Content = twentyEurocent + " x € 0,20";
}
while (change >= 0.10M)
{
tenEurocent++;
change -= 0.10M;
if (tenEurocent > 0)
lblCalculatingchange.Content = tenEurocent + " x € 0,10";
}
while (change >= 0.05M)
{
fiveEurocent++;
change -= 0.05M;
if (fiveEurocent > 0)
lblCalculatingchange.Content = fiveEurocent + " x € 0,05";
}
答案 0 :(得分:2)
每次计算新部分时,您都会覆盖标签的上一个值。正确的方法是在标签的文字中添加新的部分:
lblCalculatingchange.Content += fiftyEurocent + " x € 0,50";
甚至更好 - 您可以使用StringBuilder:
StringBuilder text = new StringBuilder();
...
text.Append(oneEuro + " x € 1,00");
...
text.Append(fiftyEurocent + " x € 0,50");
...
// all calculations done
lblCalculatingchange.Content = text.ToString();
更新。另一个,在评论中建议 - 这允许您添加&#34; +&#34;迹象:
List<string> tokens = new List<string>();
...
tokens.Add(oneEuro + " x € 1,00");
...
tokens.Add(fiftyEurocent + " x € 0,50");
...
// all calculations done
lblCalculatingchange.Content = string.Join(" + ", tokens);