我有这个功能。简单的运动计算给出了错误的结果
Calculations.add(this, //CONTEXT
function() { //CALUCATE
this.position.x += (this.movementSpeed.x/10);
},
function() { //HAVE CALCULATED
return (this.position.x === (tempX + this.movementSpeed.x));
}
);
我已经运行了结果,但有时候结果是错误的。因为我知道如果它计算10次,那么HAVE CALCULATED
应该是真的。
但有时它永远不会......并杀死我的应用程序。
让我们说,结果应该给138,然后经过计算它给我138.000000000006这是不是138和HAVE CALCULATED
是假的..
如何管理这个= I不能使用圆形,因为它应该能够返回138.5,如果最终结果是这样的话。
希望你能理解我的问题。
这是浮点数固有的预期行为。请阅读http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html。将您的数字截断到一定的小数位数以减轻浮点错误。 –
我得花一些时间,112页是很多。 :-) – TryingToImprove