计算 javascript 中的百分比
calculating percent in javascript
我正在尝试添加乘法结果,但是我想要的结果不匹配,你能帮我看看我的javascript代码哪里出错了吗?
我想要的结果:
((x*10)/100)+x = ...
或 ((30.000 * 10) / 100)+30.000 = 33000
但为什么我得到的结果 = 300030000
var x = document.getElementById("x");
var y = document.getElementById("y");
var d = document.getElementById("d");
var xstored = x.getAttribute("data-in");
var ystored = y.getAttribute("data-in");
setInterval(function(){
if( x == document.activeElement ){
var temp = x.value;
if( xstored != temp ){
xstored = temp;
x.setAttribute("data-in",temp);
calculate();
}
}
if( y == document.activeElement ){
var temp = y.value;
if( ystored != temp ){
ystored = temp;
y.setAttribute("data-in",temp);
calculate();
}
}
},50);
function calculate(){
d.innerHTML = ((x.value * y.value) / 100) + x.value ;
}
x.onblur = calculate;
calculate();
<div class="section">
<div class="container">
<h3>Calculate</h3>
<input id="x" data-in="" type="text" />
x <input id="y" data-in="" type="text" />
<hr>
<div id="d"></div>
</div>
</div>
input
元素的值是一个字符串,所以在添加之前需要将其转换为数字,以防止它被视为字符串连接。这可以使用 unary plus operator.
d.innerHTML = ((x.value * y.value) / 100) + (+x.value);
我正在尝试添加乘法结果,但是我想要的结果不匹配,你能帮我看看我的javascript代码哪里出错了吗?
我想要的结果: ((x*10)/100)+x = ... 或 ((30.000 * 10) / 100)+30.000 = 33000
但为什么我得到的结果 = 300030000
var x = document.getElementById("x");
var y = document.getElementById("y");
var d = document.getElementById("d");
var xstored = x.getAttribute("data-in");
var ystored = y.getAttribute("data-in");
setInterval(function(){
if( x == document.activeElement ){
var temp = x.value;
if( xstored != temp ){
xstored = temp;
x.setAttribute("data-in",temp);
calculate();
}
}
if( y == document.activeElement ){
var temp = y.value;
if( ystored != temp ){
ystored = temp;
y.setAttribute("data-in",temp);
calculate();
}
}
},50);
function calculate(){
d.innerHTML = ((x.value * y.value) / 100) + x.value ;
}
x.onblur = calculate;
calculate();
<div class="section">
<div class="container">
<h3>Calculate</h3>
<input id="x" data-in="" type="text" />
x <input id="y" data-in="" type="text" />
<hr>
<div id="d"></div>
</div>
</div>
input
元素的值是一个字符串,所以在添加之前需要将其转换为数字,以防止它被视为字符串连接。这可以使用 unary plus operator.
d.innerHTML = ((x.value * y.value) / 100) + (+x.value);