这是怎么回事?!减法工作正常,直到我达到 0.1 - 0.1。我在 Visual c# 2008 中使用 nonoba.com API。
Console.WriteLine("hit! " + Users[targetNum].character.health + " : " + player.character.profile.attackPower);
Users[targetNum].character.health -= player.character.profile.attackPower;
Console.WriteLine("health! " + Users[targetNum].character.health);
输出:
hit! 0.1 : 0.1
health! 1.490116E-08
谢谢大家 - 我可能会使用小数类型,因为我通常会添加/减去漂亮的“圆形”数字。现在我会选择:
if (Users[targetNum].character.health <= 0.00001)
顺便说一句,我知道这实际上不会成为 c# 中的“错误”——我认为它可能是由于我的代码中的错误或缺乏理解,事实确实如此。
阅读完所有推荐读物后,我将得出结论,我的愚蠢是由于通常使用 ActionScript Number 类型,它可能具有十进制而不是二进制浮点 - 无论如何,它永远不会给出此输出。