Javascript百分比计算器加法器函数不工作

Javascript百分比计算器加法器函数不工作,javascript,function,percentage,Javascript,Function,Percentage,我正在构建一个百分比计算器来学习JavaScript。下面是我的尝试 其中一个函数工作得很好(将百分比从数字中去掉的函数),但将百分比添加到数字中的函数似乎将值添加为字符串。我已经在寻找解决方案,使用parseInt()似乎出现了很多问题,但我似乎无法用我目前的代码实现它,所以我希望有人能提供帮助 函数myFunction(){ var per=document.getElementById(“input1”).value; var num=document.getElementById(“i

我正在构建一个百分比计算器来学习JavaScript。下面是我的尝试

其中一个函数工作得很好(将百分比从数字中去掉的函数),但将百分比添加到数字中的函数似乎将值添加为字符串。我已经在寻找解决方案,使用
parseInt()
似乎出现了很多问题,但我似乎无法用我目前的代码实现它,所以我希望有人能提供帮助

函数myFunction(){
var per=document.getElementById(“input1”).value;
var num=document.getElementById(“input2”).value;
var总和=num/100*per;
var输出=num-sum;
控制台日志(输出);
document.getElementById(“demo”).innerHTML=输出;
}
函数myFunction2(){
var per=document.getElementById(“input3”).value;
var num=document.getElementById(“input4”).value;
var总和=num/100*per;
var输出=总和+num;
控制台日志(输出);
document.getElementById(“demo1”).innerHTML=输出;
}

数字减去百分比
点击查找
结果

数字加百分比 点击查找 结果


JavaScript在数字和加法方面有点滑稽。例如:

'20'-'30'==10/`-`始终将操作数强制为数字
带字符串的“20'+'30'=='2030'/`+`解释为串联
document.getElementById
返回的值是字符串,因此最好在进行加法或减法之前将它们all(即使是有效的)解析为数字。您的代码可以是:

函数计算(){
var per=parseInt(document.getElementById('input1').value);
var num=parseInt(document.getElementById('input2').value);
风险值总和=(数量/100)*每;
var输出=num-sum;
控制台日志(输出);
document.getElementById('demo').innerHTML=output;
}
函数myFunction2(){
var per=parseInt(document.getElementById('input3').value);
var num=parseInt(document.getElementById('input4').value);
风险值总和=(数量/100)*每;
var输出=总和+num;
控制台日志(输出);
document.getElementById('demo1')。innerHTML=output;
}

问题在于
num
,而不是
per
。是的,我只是选择了“per”作为如何将字符串转换为数字的示例,然后添加了更详细的注释,说明num为什么要执行字符串concat而不是加法。非常感谢@KevinB给出如此快速的回答!我突然想到的一件事是无效的HTML
没有结束标记(因此不需要
),并且在开始标记之后有一个额外的
var num=parseFloat(document.getElementById(“input4”).value)谢谢@HereticMonkey我会整理好的!非常感谢@Barmar。