这个问题的答案是:
请参阅-Javascript variables not adding two variables correctly, only concatenating
我正在尝试将5个单位加到一个数字上,但该数字正在串联中。
this.graphicState[i].shapes[j][k].x += 5
每次循环运行时输出都是
105.00
105.005
105.0055
105.00555
...
我正在寻找的输出是
105.00
110.00
115.00
120.00
...
我尝试过
this.graphicState[i].shapes[j][k].x += parseFloat(5)
我也尝试过此方法,但得到的结果相同,
this.graphicState[i].shapes[j][k].x = this.graphicState[i].shapes[j][k].x + 5
谢谢
答案 0 :(得分:2)
您需要将以字符串为操作数且以+
为运算符的表达式中的任何/所有字符串值转换为数字。 5
不是问题,这是:
this.graphicState[i].shapes[j][k].x
因此,这就是需要转换的东西。您可以在其前面加上+
来轻松地做到这一点:
+this.graphicState[i].shapes[j][k].x;
首先对字符串进行转换,然后在数学表达式中使用转换后的值。这是一个简化的示例:
var result = "5"
result = +result + 10;
console.log(result);
答案 1 :(得分:1)
尝试此方法
this.graphicState[i].shapes[j][k].x = (parseFloat(this.graphicState[i].shapes[j][k].x) + 5).toFixed(2);