Javascript数学运算导致错误的答案

时间:2015-02-08 12:08:32

标签: javascript floating-point

有人可以向我解释这里发生的事情吗?当我打印出DeltaTime变量时,它是一个合理的数字。当我在任何数学运算中使用它时,它会导致结果非常高。

var Test = 0;

function
Update(DeltaTime)
{
    Test += DeltaTime;

    console.log(DeltaTime);
    console.log(Test);
}

function
Render()
{
    Context.clearRect(0, 0, DefaultCanvasWidth, DefaultCanvasHeight);

    RenderPlayer();
}

function
GameLoop()
{
    CurrentTime = Date.now();
    var DeltaTime = (CurrentTime - LastTime) / 1000;
    LastTime = CurrentTime;

    Update(DeltaTime);
    Render();

    requestAnimationFrame(GameLoop);
}

GameLoop();

这是输出

main.js:31 0.02
main.js:32 1423402123.8969905
main.js:31 0.029
main.js:32 1423402128.9259906
main.js:31 0.022
main.js:32 1423402133.9479907
main.js:31 0.029
main.js:32 1423402138.9769907
main.js:31 0.032
main.js:32 1423402144.0089908
main.js:31 0.022
main.js:32 1423402149.0309908
main.js:31 0.028
main.js:32 1423402154.058991
main.js:31 0.023
main.js:32 1423402159.081991
main.js:31 0.029
main.js:32 1423402164.110991
main.js:31 0.019
main.js:32 1423402169.129991
main.js:31 0.03
main.js:32 1423402174.159991
main.js:31 0.033
main.js:32 1423402179.192991
main.js:31 0.021
main.js:32 1423402184.213991
main.js:31 0.029
main.js:32 1423402189.242991

0 个答案:

没有答案