我试图让这个计算起作用,但是我正在努力奋斗。答案要么是NaN,Infinity,要么根本没有答案。不知道我哪里出错了。任何帮助非常感谢。我希望实现的计算是(mybox1 / mybox2-(mybox3 / 100))* 20
https://jsfiddle.net/kosw1mzn/
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
</head>
<body>
<input id="box1" type= "number">
<input id="box2" type= "number">
<input id="box3" type= "number">
<input id="box4" type= "number">
<input id="display" readonly>
<script>
function calculate()
{
var myBox1 = document.getElementById('box1').value;
var myBox2 = document.getElementById('box2').value;
var myBox3 = document.getElementById('box3').value;
var myBox4 = document.getElementById('box4').value;
var result = document.getElementById('display');
var myResult = ((myBox1/myBox2-(myBox3/100))*20);
result.value = myResult;
}
</script>
</body>
</html>
答案 0 :(得分:0)
如果没有返回+-Infinity
(x/0
其中x!== 0)或NaN
(0/0
),则不能除以0,因此请设置值的默认值parseInt
结果不是数字。
我添加了一个parseElementValue函数来保存重复自己。
更新为包括舍入到2个小数位的请求,并在开始时将结果输入值设置为空
<强> FIDDLE 强>
var result = document.getElementById('display');
function calculate()
{
var myBox1 = parseElementValue(document.getElementById('box1').value);
var myBox2 = parseElementValue(document.getElementById('box2').value);
var myBox3 = parseElementValue(document.getElementById('box3').value);
var myBox4 = parseElementValue(document.getElementById('box4').value);
var myResult = 0;
if(myBox2 > 0){
myResult = ((myBox1/myBox2-(myBox3/100))*20);
}
result.value = myResult.toFixed(2);
}
function parseElementValue(value){
return parseInt(value, 10) || 0;
}
result.value = '';
感谢Grundy对Infinity
vs NaN
返回0分母分区的澄清的评论
答案 1 :(得分:0)
试试这个:
function calculate()
{
var myBox1 = document.getElementById('box1').value;
var myBox2 = document.getElementById('box2').value;
var myBox3 = document.getElementById('box3').value;
var myBox4 = document.getElementById('box4').value;
var result = document.getElementById('display');
var myResult = ((+myBox1/(+myBox2 || 1)-(+myBox3/100))*20);
result.value = myResult;
}
使用Unary +将字符串转换为数字。除以0由OR 1保护。
<强>更新强>
小提琴更新为圆形结果到2位小数。
答案 2 :(得分:-2)
我正在检查你的例子,似乎它会返回正确的结果。我正在添加按钮进行处理计算
<input type="button" value="Calculate" onclick="calculate()"/>
https://jsfiddle.net/kosw1mzn/2/
请澄清您面临的问题?