2014-10-02 2 views
0

추가를 사용하여 해결할 var 합계를 얻을 수 없습니다. 곱셈 연산자로는 var total = subtotal * sales_tax 을 사용할 수 있지만 + 부호 추가 연산자는 사용할 수 없습니다. var total = subtotal + sales_tax. 어떤 도움이라도 대단히 감사 할 것입니다.Javascript : 더하기 연산자를 사용하기 위해 변수 합계를 얻을 수 없습니다.

var calculate_click = function() { 
    var subtotal = parseFloat(document.getElementById("subtotal").value).toFixed(3); 
    var taxRate = parseFloat(document.getElementById("tax_rate").value).toFixed(3); 

    if (isNaN(subtotal) || isNaN(taxRate)) {  
    } 
     else {         
     var sales_tax = (subtotal * taxRate/100); 
     parseFloat(document.getElementById("sales_tax").value = sales_tax.toFixed(3)); 

     var total = subtotal + sales_tax; 
     parseFloat(document.getElementById("total").value = total.toFixed(3)); 
    } 
} 
+0

당신이 그것을 작동하지 않는 말, 출력은 무엇인가? 실행중인 예제 (JSFiddle 또는 StackOverflow의 새 코드 편집기)에 연결할 수 있습니까? –

+0

또한 필드 값을 설정 한 코드에서'parseFloat()'를 호출하는 것은 의미가 없습니다. – Pointy

+0

입력 값을'parseFloat'에 넣는 이유는 무엇입니까? – Tommi

답변

5

toFixed()문자열에 수를 포맷합니다. 그래서 산술 연산은 예상대로 작동하지 않습니다.

참고 :

  • +"string1string2"를 돌아갑니다 있도록 (연결)은,뿐만 아니라 문자열에 대한 유효한 작업입니다 - 다른 모든 산술 연산의 경우는 자동으로 번호를 문자열로 변환하고 작업을 수행 . 문자열 내의 데이터를 변환 할 수없는 경우 NaN을 반환합니다.
  • "12" * "2" => 24 (number) 반면 "12" + "2" => "122""hello" * "3" => NaN
+0

문자열은 곱하기 연산자로 작동합니까? 그게 저를 혼란스럽게 만들었습니다.이 공식은 곱셈으로 작동했지만 덧셈은 아닙니다. – Padawan

+0

'+'(연결)도 문자열에 대한 유효한 연산이므로 "string1string2"를 반환합니다. - 다른 모든 산술 연산의 경우 문자열을 숫자로 자동 변환하고 가능한 경우 연산을 수행합니다. 그렇지 않은 경우는'NaN'를 돌려줍니다). – techfoobar

+0

''12 "+"2 "'''122 '''''12"* "2"'''24' '와''hello "*"3 "''NaN'을줍니다. – techfoobar

관련 문제