t

계산 오류 질문 드립니다.

아래와 같은 스크립트를 이용하여 계산을 하고 있습니다.
그런데 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>
|

댓글 2개

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

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

그누4 질문답변

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

+
제목 글쓴이 날짜 조회
14년 전 조회 2,145
14년 전 조회 1,624
14년 전 조회 1,495
14년 전 조회 2,248
14년 전 조회 1,515
14년 전 조회 955
14년 전 조회 2,763
14년 전 조회 1,537
14년 전 조회 950
14년 전 조회 775
14년 전 조회 759
14년 전 조회 750
14년 전 조회 978
14년 전 조회 965
14년 전 조회 962
14년 전 조회 1,254
14년 전 조회 1,864
14년 전 조회 1,839
14년 전 조회 1,519
14년 전 조회 826
🐛 버그신고