我总共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
时它完全错误。
有人可以在这里给我一些指示吗?
答案 0 :(得分:4)
基于减法工作和加法没有的事实,我只能假设delValue
实际上是一个字符串。当字符串与+
运算符一起使用时,此运算符将成为连接运算符,而不是加法运算符。 1 + "1"
等于"11"
,而不是2。
要解决此问题,请使用Unary Plus (+
)将delValue
值转换为数字:
var cakePrice = ... insciptionPrice() + +delValue;
答案 1 :(得分:2)
添加值时,您将字符串添加到整数
将整数提升为String,并且两个String都连接在一起。
没有为字符串定义 -
,那么你的String就会解析为整数,你的Substraction就像你期望的那样完成。