我已经创建了一个小型应用程序来填写一定数量的美元,以及您想要的利率选择。
这看起来像这样:
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
我如何做到这样才能真正总结美元加上利率?
答案 0 :(得分:1)
当您需要将金额转换为数字然后添加其兴趣时,您在对金额和兴趣执行字符串连接后将字符串转换为数字。所以你想要:
var sum = Number(money) + (money / 100 * interest);
答案 1 :(得分:1)
在javascript中,使用.value
会返回一个字符串,因此在分配parseInt()
和parseFloat()
时需要使用money
或interest
。
否则它将在使用+
时执行字符串连接。
根据您对输入的要求,您需要将您的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()函数。