천단위 컴마있는 숫자 곱하기 쉽게 하는 법
본문
수량과 단가를 입력하면 금액 자리에 [수량*단가] 값이 보이게 작업 중입니다.
수량,단가는 입력하면 천단위 컴마가 보이게 되어 있습니다.
함수로 만들기는 했는데, 내가 봐도 너무 복잡합니다.
컴퓨터의 주특기가 계산인데 수량*단가 라는 이 단순한 계산을 이렇게 복잡하게 해야하는지..
뭔가 훨씬 쉬운 방법이 있지 않을까요?
function calc_sum() {
var qty = document.getElementById('qty') ;
var uprice = document.getElementById('uprice') ;
var price = document.getElementById('tprice') ;
var qtyNum = Number(qty.value.replace(/\,/g, '')); //-- 컴마있으면 제거
var upriceNum = Number(uprice.value.replace(/\,/g, ''));
var priceNum = Number(price.value.replace(/\,/g, ''));
if (qtyNum != 0 && upriceNum != 0) { //-- 수량,단가가 둘 다 0 이 아니면..
priceNum = qtyNum * upriceNum; //-- 금액 계산
}
qty.value = new Intl.NumberFormat().format(qtyNum); //-- 다시 천단위 컴마 붙이기
if (qty.value =='0') {qty.value = ''} //- 결과가 0 이면 공백으로
uprice.value = new Intl.NumberFormat().format(upriceNum);
if (uprice.value =='0') {uprice.value = ''}
price.value = new Intl.NumberFormat().format(priceNum);
if (price.value =='0') {price.value = ''}
}
답변 3
위 코드에서 불필요한 것은 다음 4줄 정도 같네요
qty.value = new ~~<--부터
~~
if (uprice.value =='0') ~~<--까지
천단위 컴마를 찍는거면,
php함수 number_format() 함수를 이용하면 되지 않나요?
단순히 변수 불러와서 계산하고 결과값은 number_format() 함수를 이용하는건
안되나요?
정규식으로 하면 아주 심플하게 할수 있을겁니다
[code]
function AddComma(num)
{
var regexp = /\B(?=(\d{3})+(?!\d))/g;
return num.toString().replace(regexp, ',');
}
var nData = AddComma(nData);
[code]
저도 퍼왔습니다^^
출처: https://doolyit.tistory.com/127 [동해둘리의 IT Study:티스토리]
답변을 작성하시기 전에 로그인 해주세요.