Javascript:“+”号连接而不是给出变量的总和

Kea*_*uto 2 javascript variables sum concatenation

我目前正在创建一个网站,它将帮助我快速回答物理问题。碰巧,代码没有按预期运行,这是代码

if (option == "dv") {
    var Vinitial = prompt("What is the Velocity Initial?")
    var acceleration = prompt("what is the acceleration?")
    var time = prompt("what is the time?")

    Vfinal = Vinitial + acceleration * time

    displayV.innerHTML = "v= vf= " + Vfinal + "ms" + sup1.sup();
}
Run Code Online (Sandbox Code Playgroud)

现在,假设 Vinitial 为 9,加速度为 2,时间为 3。当代码运行时,“Vfinal”不是 15,而是 96。我发现它乘以加速度和时间,然后连接起来9开头,有6(2 * 3的乘积)。

我现在已经通过使用修复了它

Vfinal =  acceleration * time - (-Vinitial)
Run Code Online (Sandbox Code Playgroud)

这避免了使用“+”号,但我不想继续这样做。我如何解决它?

Raj*_*ddy 5

你正在处理strings这里,字符串上的数学运算会搞砸。请记住,当您进行数学运算时,您必须将数据转换为实际数字,然后执行数学运算

在此处使用更多详细信息parseInt()

你的代码应该更改为

Vfinal = parseInt(Vinitial,10) + parseInt(acceleration,10) * parseInt(time,10);

编辑1:如果数字是十进制值,则parseFloat()使用

所以代码是

Vfinal = parseFloat(Vinitial) + parseFloat(acceleration) * parseFloat(time);