js从文本框中获取数值用来计算时,相加结果为字符串

<body><form>边长a:<inputname="a"type="number"value="3"><br/>边长b:<inputname="b"type="num... <body>

<form>
边长a:<input name="a" type="number" value="3"><br/>
边长b:<input name="b" type="number" value="4"><br/>
边长c:<input name="c" type="number" value="5"><br/>
<input name="calculate" type="button" value="计算周长" onclick="cal(this.form)"><br/>
周长:<input name="s" type="number"><br/>
</form>

<script language="javascript">
function cal(form)
{
var a=form.a.value;
var b=form.b.value;
var c=form.c.value;
form.s.value = a+b+c;
}
</script>

</body>

运行的结果:

这是哪儿的问题?应该怎么解决啊?
展开
 我来答
wxqlgd
推荐于2017-12-16 · TA获得超过7025个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:327万
展开全部
js是一个弱数据类型的语言,input框中获取的值全部为字符串类型,另外js里边还有一种类型叫做number类型,你如果要进行数字之间的加减,必须将字符类型转换为number类型,
如果是整型,就用:
var a=parseInt(form.a.value,10);
var b=parseInt(form.b.value,10);
var c=parseInt(form.c.value,10);
就是将字符类型转换成10进制的int类型。希望采纳。
玩啥别玩感情1
2013-07-25
知道答主
回答量:43
采纳率:0%
帮助的人:16.6万
展开全部
因为那是string 类型,只要改成 int 类型就可以了。用parseFloat()可以转为int类型,然后再计算就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q630703545
2013-07-25 · 超过19用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:55.9万
展开全部
var a=parseFloat(form.a.value);
var b=parseFloat(form.b.value);
var c=parseFloat(form.c.value);
这3个改下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式