更好的javascript舍入系统

时间:2014-12-25 14:07:12

标签: javascript for-loop

我正在尝试用javascript制作图形计算器。今天我遇到了一个我不知道如何修复的问题。这是代码。

var step = 0.5;
for (var i = -size; i <= size; i+= step){
    if(given!=null){
        func = eval(given);
        console.log("x: " + x + " y: " + func);
    } else {
        func = -(x);
    }
    points[i+size] = new THREE.Vector3(x,0,func);
    x+=step;
}

你可以忽略Vector的东西,我的问题是关于不准确性。当我做任何低于0.5的步骤时,javascript会出错。当我将步骤改为0.05时会发生这种情况。

x:-14 y: 0.27090578830786904
x: -13.95 y: 0.36565262028262135
x: -13.899999999999999 y: 0.456745972144196

还有更多它,但我在-13停了,因为那是问题的开始。如你所见,我希望它返回-13.90,但它不起作用。我尝试将其四舍五入,但当x为正时它将再次停止工作。请帮忙。提前谢谢。

1 个答案:

答案 0 :(得分:0)

改变这个:

console.log("x: " + x + " y: " + func)

对此:

console.log("x: " + x.toFixed(2) + " y: " + func)