这是怎么回事?!减法工作正常,直到达到0.1 - 0.1.我在使用nonoba.com API的visual c#2008中.
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);
Run Code Online (Sandbox Code Playgroud)
输出:
hit! 0.1 : 0.1
health! 1.490116E-08
Run Code Online (Sandbox Code Playgroud)
谢谢所有 - 我可能会使用十进制类型,因为我通常添加/减去漂亮的"圆"数字.现在我只想:
if (Users[targetNum].character.health <= 0.00001)
Run Code Online (Sandbox Code Playgroud)
顺便说一下,我知道这并不是c#中的"bug" - 我认为这可能是由于代码中的错误或者缺乏理解而导致的.
阅读完所有推荐的阅读后,我将得出结论,我的愚蠢是由于通常使用ActionScript Number类型,它可能有一个十进制而不是二进制浮点 - 无论如何,它永远不会给出这个输出.