Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
值在Javascript中作为字符串不断添加_Javascript_String - Fatal编程技术网

值在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让您更好地了解正在发生的事情。和可能重复。