发生了什么事?减法工作正常,直到我达到0.1 - 0.1。我在使用nonoba.com API的visual c#2008中。C#浮动错误? 0.1 - 0.1 = 1.490116E-08
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#中的“错误”的方式 - 我以为它会无论是在我的代码或一些缺乏一个bug理解,这是。
读完所有推荐的阅读后,我将得出结论,我的愚蠢是由于通常使用的ActionScript编号类型,它可能有一个小数而不是二进制浮点 - 总之,它永远不会给这个输出。
这看起来依稀像一个RPG或MMO游戏,不能你圆了呢? – 2009-01-25 23:18:22