值在Javascript中作为字符串不断添加
可能重复:值在Javascript中作为字符串不断添加,javascript,string,Javascript,String,可能重复: 这是我所拥有的 var srate = Math.round(princ * intr * term * 100) / 100; //works fine var dasvalue = princ + srate; //doesn't work document.calc.pay.value = dasvalue; “var dasvalue=princ+srate;”将两个总和相加为字符串 100+1.4=1001.4 我做错了什么?您可以使用转换为类型
这是我所拥有的
var srate = Math.round(princ * intr * term * 100) / 100; //works fine
var dasvalue = princ + srate; //doesn't work
document.calc.pay.value = dasvalue;
“var dasvalue=princ+srate;”将两个总和相加为字符串
100+1.4=1001.4
我做错了什么?您可以使用转换为类型编号,以确保加法而不是串联:
var dasvalue = +princ + +srate;
princ
也是一个字符串。您可以使用一元+
运算符将其转换为数字。如果princ
中的值来自输入,则需要先将其转换为数字
var dasvalue = Number(princ) + srate;
虽然这是完全正确的,但在很多层面上都是错误的。我可能会打到编写这种代码的开发人员。这是不可读的,可能会因压缩而中断。++srate
可能会变成++srate
。不要使用这种压缩器,请使用google Close、yahoo compressor或类似的真正理解javascript的压缩器。@TorstenWalter如果压缩器无法处理添加一元加号前的值,它不是一个真正的压缩机,是吗…@ChrisFrancis如果两者都是,那么这里所有的+
都是必要的strings@ChrisFrancis先生,谢谢你的回答,因为它确实是正确的。为了满足这两种世界观,有人可能会认为,在分配变量princ=+field.value时,可能应该使用一元运算符;dasvalue=princ+srate代码>让您更好地了解正在发生的事情。和可能重复。