我有5个输入字段(范围滑块),当任何输入值更改时,我都试图返回结果。 问题是“ value4”在等式中使用了2次,这引起了问题。如果我更改“ value4”,我的结果不会改变。
function output(){
var value1 = document.getElementById('NumberOfEmployees_input').value;
var value2 = document.getElementById('AverageSalary_input').value;
var value3 = document.getElementById('AverageTime_input').value;
var value4 = document.getElementById('WorkdaysWeek_input').value;
var value5 = document.getElementById('AccountingHours_input').value;
document.getElementById('saving').innerHTML =
(((parseInt(value1) * parseInt(value2))/(parseInt(value4) * parseInt(1920))) * (parseInt(value3) * parseInt(value4) * parseInt(48)))
+ (parseInt(value5) * parseInt(13500)) - parseInt(183600);
}
有人可以给我一个提示吗? 谢谢!
答案 0 :(得分:2)
答案 1 :(得分:1)
该代码很难阅读。我建议首先简化代码,缩短变量名。然后尽早应用parseInt
,以减少之后的混乱情况。
另外,由于parseInt(123)
已经是整数,因此无需123
。
function output(){
var v1 = parseInt(document.getElementById('NumberOfEmployees_input').value);
var v2 = parseInt(document.getElementById('AverageSalary_input').value);
var v3 = parseInt(document.getElementById('AverageTime_input').value);
var v4 = parseInt(document.getElementById('WorkdaysWeek_input').value);
var v5 = parseInt(document.getElementById('AccountingHours_input').value);
var n = v1 * v2; // nominator
var d = v4 * 1920 * v3 * v4 * 48; // denominator
document.getElementById('saving').innerHTML = (n/d) + (v5 * 13500) - 183600;
}
答案 2 :(得分:1)
这是你的方程式
(
(
(parseInt(value1) * parseInt(value2))
/
(parseInt(value4) * parseInt(1920))
) *
(parseInt(value3) * parseInt(value4) * parseInt(48))
)
+ (parseInt(value5) * parseInt(13500))
- parseInt(183600);
v1 • v2
(----------- • v3 • v4 • 48) + (v5 • 13500) - 183600
v4 • 1920
// valueN has been substituted with vN
通过观察,v4
抵消了。
这将您的数学链减少为
( (parseInt(value1)*parseInt(value2)*parseInt(value3)*48) / 1920 )
+ (parseInt(value5) * 13500)
- 183600;
请注意,最初v4
= 0会失败。
为使代码更具可读性,您可以这样分隔分子和分母
n = parseInt(value1) * parseInt(value2) * parseInt(value3) * 48
document.getElementById('saving').innerHTML = (n/1920) + (v5 * 13500) - 183600;
尽管这可能无法回答您使用2个输入值的问题,但这可以根据您的情况提供解决方法。当您发布问题时,您似乎没有意识到这一点。也许您放错了括号或在计算中出错了?