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