Web Programming/기타 자료
자바스크립트로 소수점 몇자리 이하 반올림 하기 소스
Rusi(루시)
2010. 10. 1. 16:26
//tbox는 input에서 자바스크립트 함수 호출시 this로 호출한다.
onclick="Maxlangth(this);"
function Maxlangth(tbox){
onclick="Maxlangth(this);"
function Maxlangth(tbox){
//값을 받는다
var temp = tbox.value;
//문자열에서 소수점의 index 번호를 찾는다.
var indexnum = temp.indexOf(".");
//정수부분 추출
var mainstr = temp.substr(0, indexnum);
//소숫점 부분 추출 후 0.XXXX형식으로 만든다
var substr2 = "0"+temp.substr(indexnum, 5);
//소숫점을 3자리 뒤로 옮긴다.
//XXX.X으로 바꾼후 반올림 작업 한다.
//다시 소숫점을 3자리 앞으로 옮겨 0.XXX로 변경한다.
substr2 = (Math.round(parseFloat(substr2) * 1000) / 1000);
//혹시 모를 에러 대비 하여 0.XXX형태로 나오게 substr을 한다.
substr2 = substr2.toString().substr(2, 3);
//this로 받아온 컨트롤에 반올림한 숫자를 입력한다.
tbox.value = mainstr+"."+substr2;
}
가만히 생각해 보니 정수와 소숫점 부분을 나눌 필요가 없구나...-_-
나눌필요없이 그냥 반올림 작업 하는 부분 하면 되는구나...;;
//소숫점을 3자리 뒤로 옮긴다.
//XXX.X으로 바꾼후 반올림 작업 한다.
//다시 소숫점을 3자리 앞으로 옮겨 0.XXX로 변경한다.
substr2 = (Math.round(parseFloat(temp) * 1000) / 1000);
//혹시 모를 에러 대비 하여 0.XXX형태로 나오게 substr을 한다.
//substr2 = substr2.toString().substr(2, 3);
//this로 받아온 컨트롤에 반올림한 숫자를 입력한다.
tbox.value = substr2;
이러면 끝... 에레이...-_-
var temp = tbox.value;
//문자열에서 소수점의 index 번호를 찾는다.
var indexnum = temp.indexOf(".");
//정수부분 추출
var mainstr = temp.substr(0, indexnum);
//소숫점 부분 추출 후 0.XXXX형식으로 만든다
var substr2 = "0"+temp.substr(indexnum, 5);
//소숫점을 3자리 뒤로 옮긴다.
//XXX.X으로 바꾼후 반올림 작업 한다.
//다시 소숫점을 3자리 앞으로 옮겨 0.XXX로 변경한다.
substr2 = (Math.round(parseFloat(substr2) * 1000) / 1000);
//혹시 모를 에러 대비 하여 0.XXX형태로 나오게 substr을 한다.
substr2 = substr2.toString().substr(2, 3);
//this로 받아온 컨트롤에 반올림한 숫자를 입력한다.
tbox.value = mainstr+"."+substr2;
}
가만히 생각해 보니 정수와 소숫점 부분을 나눌 필요가 없구나...-_-
나눌필요없이 그냥 반올림 작업 하는 부분 하면 되는구나...;;
//소숫점을 3자리 뒤로 옮긴다.
//XXX.X으로 바꾼후 반올림 작업 한다.
//다시 소숫점을 3자리 앞으로 옮겨 0.XXX로 변경한다.
substr2 = (Math.round(parseFloat(temp) * 1000) / 1000);
//혹시 모를 에러 대비 하여 0.XXX형태로 나오게 substr을 한다.
//substr2 = substr2.toString().substr(2, 3);
//this로 받아온 컨트롤에 반올림한 숫자를 입력한다.
tbox.value = substr2;
이러면 끝... 에레이...-_-