2017-11-18 14 views
1

저는 코딩이 비교적 새로운데 다음과 같은 문제가 있습니다. 사용자 입력 (클래스 = "autoValue") 이후에 자동으로 입력 된 13 개의 숫자 입력이 있습니다. 함께 추가해야합니다. 그런 다음 Math.exp 함수에 결과를 사용해야합니다. 내 문제는 숫자 중 하나는 negativ (-5)이며 빼기가 JQuery에서 유효한 연산이지만 최종 결과는 거의 항상 negativ (각 사용자 입력 후 함수가 트리거 됨)입니다. 그래서 NaN 결과를 얻었습니다 ...JQuery에서 뺄셈 한 후 negativ 결과를 얻는 방법은 무엇입니까?

  • 어떻게이 문제를 극복 할 수 있습니까?
  • 내가 수학을 잘못 했습니까?
  • 내 코드는 괜찮습니까?
  • 지수가 오른쪽 부분입니까?

불행히도 온라인에서 찾은 모든 해결책이 내 문제를 해결하지 못하므로 도움이 필요합니다. 편집 : 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

+0

당신은 합계'무엇을 의미합니까 + = + this.value;'? – edkeveked

+0

'+ this.value'는 문자열 값을 입력으로부터 숫자로 강제 변환합니다. 그런 다음'sum'에 추가됩니다. @edkeveked – Andy

+0

예 @Andy, 네 말이 맞아! – edkeveked

답변

1

귀하의 코드가 노력하고 있습니다. 내가 입력 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>

+1

@Pussyfer, 당신은 내게 입력과 당신이 기대하는 결과를 줄 수 있습니까? – edkeveked

+0

고마워요! 처음부터 내 코드를 점검하고 오타가 있음을 알았습니다. "필드 1"에 "빼기"기호 대신 "대시"가 표시되어 이것이 NaN을 반환 한 이유입니다.이 문제를 해결할 수 있도록 도와 주셔서 감사합니다. . – Pussyfer

+1

@Pussyfer, 대단히 당신은 그것을 씻었습니다! – edkeveked

0

사용하는 자바 스크립트 복근() 메소드

절대 값 : Math.abs(-3.0877706);

결과 : 3.0877706

+0

결과가 Math.exp()에 대해 나중에 사용되기 때문에 negativ 또는 positive 인 결과가 필요합니다. – Pussyfer