更好的舍入系统

Better rounding system for javascript

本文关键字:系统 舍入 更好      更新时间:2023-09-26

我正在尝试用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;
}

你可以忽略矢量的东西,我的问题是关于不准确的。当我使步长低于 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 为正数时,它将再次停止工作。请帮忙。提前谢谢。

更改以下内容:

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

对此:

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