我有這個功能。簡單的運動計算給出了錯誤的結果
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