JS如何添加而不是连接数字

时间:2018-10-10 12:01:51

标签: javascript concatenation

这个问题的答案是:

请参阅-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

谢谢

2 个答案:

答案 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);