javascript计算输出奇怪的结果

时间:2014-10-29 16:22:58

标签: javascript

我总共n00b所以请温柔,我可能不会总是使用正确的条款...... 我有一个javascript,根据几个下拉菜单计算价格。

var cakePrice = getItemno()*getResolutionPrice()*getFrameratePrice() + candlesPrice() + insciptionPrice() + delValue;

前5个值来自脚本,主要由数组定义。最后一个值(delValue)直接来自表单,并由此读出:

var e = document.getElementById("filling2");
var delValue = e.options[e.selectedIndex].value;

虽然在提取值时计算是正确的,但在添加delValue时它完全错误。

有人可以在这里给我一些指示吗?

2 个答案:

答案 0 :(得分:4)

基于减法工作和加法没有的事实,我只能假设delValue实际上是一个字符串。当字符串与+运算符一起使用时,此运算符将成为连接运算符,而不是加法运算符。 1 + "1"等于"11",而不是2。

要解决此问题,请使用Unary Plus (+)delValue值转换为数字:

var cakePrice = ... insciptionPrice() + +delValue;

答案 1 :(得分:2)

添加值时,您将字符串添加到整数

将整数提升为String,并且两个String都连接在一起。

没有为字符串定义

-,那么你的String就会解析为整数,你的Substraction就像你期望的那样完成。