JQuery 减法后负结果的任何解决方案

Any solution for negativ result after subtraction in JQuery

我是编码方面的新手,我有以下问题:我有 13 个数字输入,它们都是浮点数,在用户输入后自动出现 (class=“autoValue”)。它们必须加在一起。然后结果必须用于 Math.exp 函数。 我的问题是其中一个数字是负数 (-5),虽然减法在 JQuery 中是有效的操作,但最终结果几乎总是负数(该函数在每次用户输入后触发)。所以我得到 NaN 结果...

不幸的是,我在网上找到的所有解决方案都不能解决我的问题,所以我需要一些帮助。 编辑: 我添加了 HTML 的一部分(完整代码太长了)。提前致谢!

//get gender
$('input').click(function(e){
if ($("#demo09a").is(':checked')){
$("#2").val(0.65);
}
else {
$("#2").val(0);
}
})


 function getScore() {
  var sum = 0;
  $(".autoValue").each(function() {
    sum += +this.value;
  });
  console.log("sum:" + sum)
  var ex = Math.exp(sum);
  console.log("ex:" + ex)
  var result = ex / (1 + ex);
  var finalResult = result.toFixed(2);
  if (isNaN(finalResult)) finalResult = 0;
  $('#result').val((finalResult));
}

$(document).ready(function() {
  $('.trigger').click(function(event) {
    getScore();
  });
  $('.triggeriii').keyup(function(event) {
    getScore();
  });
  $('.triggeriii').blur(function(event) {
    getScore();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="result" type=“text” readonly="true">Result <br />
<input id="1" class="autoValue" type=“text” value="-3.0877706">Field 1 <br \>
<input id="demo09a" class="trigger" type="radio" name="gender" value="1">female
<input id="demo09b" class="trigger" type="radio" name="gender" value="0">male<br />
<input id="2" class="autoValue" type=“text” name="2" readonly="true">Field 2

使用JavaScript abs() 方法

绝对值:Math.abs(-3.0877706);

结果:3.0877706

您的代码正在运行。我在输入 field1 中使用了不同的负数(-5、-4)并且它起作用了。 也许您正在代码中进行其他一些可能导致问题的计算。给定您的代码,在 field1 中输入,我们独立地得到与检查 malefemale 相同的输出。

//get gender
function triggerComputation(){
$('input').click(function(e){
if ($("#demo09a").is(':checked')){
$("#2").val(0.65);
}
else {
$("#2").val(0);
}
})

getScore()
}



 function getScore() {
  var sum = 0;
  $(".autoValue").each(function() {
    sum += +this.value;
  });
  console.log("sum:" + sum)
  var ex = Math.exp(sum);
  console.log("ex:" + ex)
  var result = ex / (1 + ex);
  console.log("result:"+result);
  var finalResult = result.toFixed(2);
  if (isNaN(finalResult)) finalResult = 0;
  $('#result').val((finalResult));
}

$(document).ready(function() {
  $('.trigger').click(function(event) {
    getScore();
  });
  $('.triggeriii').keyup(function(event) {
    getScore();
  });
  $('.triggeriii').blur(function(event) {
    getScore();
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="result" type=“text” readonly="true">Result <br />
<input id="1" class="autoValue" type=“text” value="-3.0877706">Field 1 <br \>
<input id="demo09a" class="trigger" type="radio" name="gender" value="1">female
<input id="demo09b" class="trigger" type="radio" name="gender" value="0">male<br />
<input id="2" class="autoValue" type=“text” name="2" readonly="true">Field 2

<button onclick="triggerComputation()">compute</button>