我试图计算付款次数,但输出错误,所以我试图计算月份值的简单操作。但是" +"运算符并不总结我的值,它就像字符串一样。例如3和5,输出不是8就是35。
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mortgage Calculator</title>
<script>
function validateForm() {
var principal = princ.value;
var interestrate = interest.value;
var monthlypayment = monthly.value;
var months=(principal)+(interestrate);
document.getElementById("demo").innerHTML=months;
}
</script>
</head>
<body>
<p id="demo"></p>
<form name="myForm" action="/action_page.php" onsubmit="return validateForm()" method="post">
Principal: <input type="text" id="princ" name="principal">
<br>
<br> Interest Rate: <input type="text" id="interest" name="interestrate">
<br/>
<br/> Monthly Payment: <input type="text" id="monthly" name="monthlypayment">
</form>
<button onclick="validateForm()">Run</button>
</body>
</html>
答案 0 :(得分:1)
值的实际类型为string
。这就是字符串连接发生的原因。您必须使用parseInt
将字符串转换为整数以执行预期的算术运算。
更改
var months=(principal)+(interestrate);
要强>
var months = parseInt(principal) + parseInt(interestrate);
答案 1 :(得分:1)
您要求的值是字符串。您需要将它们转换为整数:
parseInt(principal)+parseInt(interestate)
原因是输入值总是字符串。 AFAIK,即使您将类型设置为number
也是如此。 parseInt(s)
将字符串s转换为int。
答案 2 :(得分:-1)
var months=parseInt(principal)+parseInt(interestrate);
首先需要将值转换为整数。
答案 3 :(得分:-1)
您的输入值被视为字符串,因为它们是文本框输入。在添加它们之前先解析它们。
e.g。
var principal = parseInt(princ.value);
var interestrate = parseInt(interest.value);