我在编码方面相对较新,我有以下问题:我有 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
您的代码正在工作。我在输入field1
中使用了不同的负数(-5、-4(,它起作用了。也许您正在代码中执行一些可能导致问题的其他计算。给定您的代码,在field1
中输入,我们独立地具有相同的输出,male
或female
被检查。
//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>
使用 JavaScript abs(( 方法
绝对值:Math.abs(-3.0877706);
结果 : 3.0877706