Javascript在计算利率时将数字视为字符串

时间:2014-07-15 19:01:19

标签: javascript

我已经创建了一个小型应用程序来填写一定数量的美元,以及您想要的利率选择。

这看起来像这样:

function calculation() {
    var money = document.getElementById('money').value;
    var interest = document.getElementById('interest').value;

    var sum = money + (money / 100 * interest);

    document.getElementbyId('sum').innerHTML = sum;
}

对于我的HTML,它看起来像这样:

<input id="money" type="number" min="1" max="1000000" onchange="calculation()">

<input id="interest" type="number" min="0" max="100" value="10" step="0.1" onchange="calculation()">%

<h2 id="sum"></h2>

我试图将Number方法添加到我的总和中:

var sum = Number(money + (money / 100 * interest));

但那没用。

输入金额

  

100.00

输入感兴趣的金额

  

10

预期输出

  

110

实际输出

  

10010

我如何做到这样才能真正总结美元加上利率?

5 个答案:

答案 0 :(得分:1)

当您需要将金额转换为数字然后添加其兴趣时,您在对金额和兴趣执行字符串连接后将字符串转换为数字。所以你想要:

var sum = Number(money) + (money / 100 * interest);

答案 1 :(得分:1)

在javascript中,使用.value会返回一个字符串,因此在分配parseInt()parseFloat()时需要使用moneyinterest

否则它将在使用+时执行字符串连接。

根据您对输入的要求,您需要将您的javascript更改为:

function calculation() {
  var money = parseFloat(document.getElementById('money').value);
  var interest = parseInt(document.getElementById('interest').value);

  var sum = money + (money / 100 * interest);

  document.getElementbyId('sum').innerHTML = sum;
}

答案 2 :(得分:1)

您需要立即转换值。

即使你这样做了:

var sum = Number(money + (money / 100 * interest));

运营商的顺序将首先评估()内的内容,因此您仍在向()内的数字添加字符串。

有很多不同的方法可以将字符串转换为数字,所以这里只需乘以1就可以了:

var money = 1 * document.getElementById('money').value;
var interest = 1 * document.getElementById('interest').value;

答案 3 :(得分:0)

使用javascript&#t;的parsefloat方法:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseFloat

function calculation() {
    var money = parseFloat(document.getElementById('money').value);
    var interest = parseFloat(document.getElementById('interest').value);

    var sum = money + (money / 100 * interest);

    console.log(sum);
}

或者如果你想坚持使用Number

function calculation() {
        var money = Number(document.getElementById('money').value);
        var interest = Nynber(document.getElementById('interest').value);

        var sum = money + (money / 100 * interest);

        console.log(sum);
    }

答案 4 :(得分:0)

您必须使用parseInt()或parseFloat()函数。