我有这个 switch 语句,每次将双 itemCost(最初为 0.80)减少 0.20。当它达到 0.00 我想执行一些代码。它工作正常,直到它达到 0.00 但不是 0.00 itemCost 变为 5.55111512312578E-17。
当我按下执行 switch 语句的按钮时, itemCost 的输出值为:
0.60, 0.40, 0.20, 5.55111512312578E-17, -0.20, -0.40 etc
代码:
switch (codeString)
{
case "20":
{
userAmount = userAmount + 0.20;
itemCost = itemCost - 0.20;
Console.WriteLine("" + itemCost);
if (itemCost == 0.00)
{
giveChange();
labelInstructions.Text = "giveChange";
}
else
{
string tempString = string.Format("{0:N2}", itemCost);
labelInstructions.Text = "Please insert £" + tempString;
}
break;
}
}
任何人都知道为什么会发生这种奇怪的行为以及如何解决它?