【发布时间】:2021-10-29 09:25:04
【问题描述】:
我是 Javascript 新手,我正在尝试进行计算,该计算会根据输入输入的数字而变化。 然而,这些函数将输出转换为 NaN,所以我想知道是否可以将 NaN 转换为正常数字(以便我可以将 hUeCalc 和 massCalc 添加在一起并将其显示为数字)使用,或者我是否必须使用另一个选项进行计算。
也许 switch 和 case 可能是一个选项,但我不太确定它们是否会产生我需要的效果。
在下面的代码中,您可以看到按下按钮时执行的功能。现在,当我单击激活函数 calc 的按钮时,我在 tax.innerHTML 中得到 NaN 而不是数字。
提前致谢。
function calc() {
let hubraum = Number(hubraumComponent.value);
let emission = Number(emissionComponent.value);
let masse = Number(masseComponent.value);
let hUeCalc = Number(function (){
if (Diesel.checked == true) {
((Math.ceil((hubraum/100)))*9.5)+((emission-95)*2);
}
else if (Benzin.checked == true) {
((Math.ceil((hubraum/100)))*2)+((emission-95)*2);
};
});
let masseCalc = Number(function (){
let masseValue;
if (masse <= 2000) {
masseValue = (Math.ceil((masse/200)*5.625));
}
else if (masse >= 3000) {
masseValue =(Math.ceil((masse/200)*6.01));
}
else if (masse >= 3500) {
masseValue = (Math.ceil(masse/200)*6.39);
};
});
// let masseValue = (Math.ceil (masse/200));
let berechnung = (hUeCalc + masseCalc);
tax.innerHTML = (berechnung) + "€";
console.log('Calc has been done');
console.log('hubraum value is ' + hubraum);
console.log('emission value is ' + emission);
console.log('masse value is ' + masse);
console.log('hubraumcalc value is ' + hUeCalc);
console.log('massecalc value is ' + masseCalc);
}
这里还有 HTML 以防你想看到激活所有这些的按钮
<div class="input-field-second-calc" onclick="calc()">
<input type="button" class="btn btn-outline-primary" value="berechnen">
<br>
<a id="tax"></a>
</div>
【问题讨论】:
-
当它返回 NaN 时,这意味着不是数字。所以不,你不能把它转换成数字。但是,在大多数情况下,这意味着您在操作中的某处获得了非数字值。您可以尝试记录值以查看问题的确切位置
-
不确定你想用
Number(function (){做什么。你能添加你打电话给calc()的方式吗? -
Number.NaN尽管它的名称是一个数字值(typeof Number.NaN等于'number'),但可以用它来计算。不利的一面是,NaN参与的每个计算结果也将是NaN。 -
顺便说一句,哪个计算是正确的...谈论嵌套括号...
(Math.ceil((masse/200)*factor));vs(Math.ceil(masse/200)*factor)?
标签: javascript function numbers calculation