Javascript使用用户输入的梯形区域计算,结果不正确

时间:2014-05-01 21:05:58

标签: javascript area

我正在尝试制作一个计算梯形区域的javascript程序。到目前为止,我的js代码是:

var lol=prompt("Please enter which 2d polygon you would like this awesome calculator to calculate.")
if(lol==="trapezoid"){
    var tr1=prompt("Enter the top base.")
    var tr2=prompt("Enter the bottom base.")
    var tr3=prompt("Now enter the height.")
    confirm((tr1+tr2)*(tr3)/2)
}

但是当我把4,5,6放在我的计算器中时,它会吐出135而不是27。

为什么?

2 个答案:

答案 0 :(得分:1)

您可以使用parseInt将值设置为整数。

var lol=prompt("Please enter which 2d polygon you would like this awesome calculator to calculate.")
if(lol==="trapezoid"){
    var tr1=Number(prompt("Enter the top base."))
    var tr2=Number(prompt("Enter the bottom base."))
    var tr3=Number(prompt("Now enter the height."))
    confirm((tr1+tr2)*(tr3)/2)
}

这是一个与Benjamine的Number

的JSFiddle

http://jsfiddle.net/cXWnk/

答案 1 :(得分:1)

您从提示中返回的值是字符串,正如Ryan P所说," 1" +" 1" =" 11"。

您需要做的是在计算中使用它们之前将字符串转换为整数。

您可以使用Number()功能执行此操作 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number

因此,您的代码可能是:

confirm((Number(tr1) + Number(tr2)) *(Number(tr3))/2)

或者,使用一元加速记:

confirm((+tr1 + +tr2)*(+tr3)/2)