JavaScript中的Plus运算符并不能使我的值相加

时间:2018-03-20 00:42:19

标签: javascript html

我试图计算付款次数,但输出错误,所以我试图计算月份值的简单操作。但是" +"运算符并不总结我的值,它就像字符串一样。例如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>

4 个答案:

答案 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);