2014-11-28 3 views
0

여기 내 자바 스크립트에 관한 문제가 있습니다. 이 자바 스크립트는 정상적으로 작동하지만 문제는 실행에 사용자가 입력 한 소수점 이하 자릿수가 포함되지 않은 작업입니다. 예를 들어 사용자가 13.2-10을 입력합니다. 대답은 3.2 종교 의식이어야합니다. 그러나 출력 결과는 3입니다. 소수 자릿수는 계산하지 않습니다. 누군가 도움을 줄 수 있다면 정말 감사 할 것입니다. 이것은 내 자바 스크립트입니다 :소수점 이하 자리 만들기 작업

$(window).load(function(){ 
    function calcSubMTotal(p) { 
     var minus = 0; 
     var isFirst=true; 
     var minus_total = $('#' + p + ''); 

     $('.' + p + '').each(function (i) { 
      if (!isNaN(this.value) && this.value.length !== 0) { 
       if(!isFirst) 
        minus -= parseInt(this.value); 
       else 
       { 
        minus=parseInt(this.value); 
        isFirst=false; 
       } 
      } 
     }); 

     minus_total.val(minus); 
    } 

    $('input[type=text]').on('keyup', function() { 
     calcSubMTotal("rr"); 
    }); 
}); 
+1

parseInt 대신 parseFloat를 사용해야합니다. –

답변

1

당신은 정수를 반환합니다 parseInt을 사용하고 있습니다. 대신 parseFloat을 사용하십시오. 이 자바 스크립트에 있기 때문에, 약간의 일부 (아마도) 예기치 않은 결과를 초래할 것이라고

참고 :

당신이 그것을 표시 할 때이, 그래서, 당신은 아마 같은 것을 할 실제로 올바른하고자한다
13.2 - 10 == 3.1999999999999993 

:

minus_total.val(minus.toFixed(2)); 

이후 :

(13.2 - 10).toFixed(2) == "3.20" 
+0

고마워. 그러나 결과를 2 개의 유효 숫자로 표시하는 방법을 알고있을 수 있습니까? –

+0

아, 이미 그것에 대한 메모를 추가했습니다. :) * signification figure * 또는 * decimal places *를 의미 했습니까? – Hamish

+0

예. 나는 중요한 인물을 의미한다. 다시 한번 감사드립니다. 그 일. –

1

이 정수는 소수의 장소가없는 시도 parseInt() 대신 parseFloat()

+0

감사합니다. 알았다. –

0

parseInt 대신 parseFloat를 사용해야합니다.

관련 문제