계산 오류 질문 드립니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

계산 오류 질문 드립니다. 정보

계산 오류 질문 드립니다.

본문

아래와 같은 스크립트를 이용하여 계산을 하고 있습니다.
그런데 wr_2값의 결과가 잘못 나오게에 질문을 드립니다.
wr1val 값이 90000 이 나오게 되면 wr_2의 값이 62999.99999999 이런식으로 나오는데 이유를모르겠습니다. 다른 값에서는 정확한 계산이 이루어 지는데 90000에서만 잘못된 계산이 나옵니다.


<script type='text/javascript'>
function btn() {

    // wr_1 값저장
    var wr1val = parseInt(document.getElementsByName('wr_1')[0].value);
    // wr_25 값저장
    var wr25val = parseInt(document.getElementsByName('wr_25')[0].value);

    // wr_2값 구하기
if (wr25val >= 1) {
document.getElementsByName('wr_2')[0].value = wr1val*0.7;
    } else {
    document.getElementsByName('wr_2')[0].value = wr1val*1;
}

// wr_26값 구하기
if (wr1val >= 1) {
    document.getElementsByName('wr_26')[0].value = wr25val*0.6;
} else {
    document.getElementsByName('wr_26')[0].value = wr25val*1;
}

//
var wr2val = parseInt(document.getElementsByName('wr_2')[0].value);
//
var wr26val = parseInt(document.getElementsByName('wr_26')[0].value);
    // wr_28값 구하기
    document.getElementsByName('wr_28')[0].value = wr1val+wr25val;
    // wr_29값 구하기
    document.getElementsByName('wr_29')[0].value = wr2val+wr26val;
    return true;
}
</script>
  • 복사

댓글 전체

통상 저런 문제점은...
숫자를 문자열로 인식하는 문제점 때문에 그렇습니다.

강제로 전부다 숫자형으로 지정해 주셔야 됩니다.
디버깅은 일일히.. alert로 찍어봐야 하구요
자바스크립트 소숫점 처리가 일반적으로 생각하는 산술과 다른 부분이 있습니다
-이진처리 방법상의 문제랄까..
자세한 사항은 저도 잘 모르니 설명드릴 수는 없고
이렇게 하면 됩니다.
wr25val * 0.7 ==> wr25val * 7 /10
© SIRSOFT
현재 페이지 제일 처음으로