테스트 사이트 - 개발 중인 베타 버전입니다

계산기 콤마 질문!! 채택완료

에니악 5년 전 조회 3,402

<script>
function onlyNumber(event) {event = event || window.event;var keyID = (event.which) ? event.which : event.keyCode;if ( (keyID >= 48 && keyID <= 57) || (keyID >= 96 && keyID <= 105) || keyID == 8|| keyID == 9 || keyID == 46 || keyID == 37 || keyID == 39 || keyID == 188)return;else return false;}
function removeChar(event) {event = event || window.event; var keyID = (event.which) ? event.which : event.keyCode; if ( keyID == 8 || keyID == 46 || keyID == 37 || keyID == 39 ) return; else    event.target.value = event.target.value.replace(/\B(?=(\d{3})+(?!\d))/g, ",");     }
$('input[name="calc_cate"]').change(function(){
    commission = $(this).val();
    $("#insert_commission").empty().append(commission);
    var cate_id = $('input[name="calc_cate"]:checked').attr('id');
    var cate_name = $("label[for='"+cate_id+"']").text();
    $("#insert_cate").empty().append(cate_name);


    
});

function get_price(){
    insert_price = Number($("#calc_price").val());
    insert_commission = Number($("#insert_commission").text());
    

    result_commission = parseInt(insert_price * (insert_commission/1000000));
    result_price = insert_price - result_commission;
    
    $("#insert_price").empty().append(insert_price);
    $("#result_price").empty().append(result_price);
    $("#result_commission").empty().append(result_commission);


}
</script>

 

 

인풋 라인에는 콤마가 찍히는데 버튼을 누르고 조회되는 금액 부분에서는 오류가 뜹니다 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
5년 전

콤마를 입력 중에도 표기하고 싶다면

계산할때는 콤마를 제거하고 계산하셔야 합니다

그리고 계산 후 다시 콤마를 표시하는 형태로 가야합니다

숫자가 아닌 다른 문자열이 들어간상태로 형변환을 하면 정상적인 값을 계산할 수 없습니다.

 

   insert_price = Number($("#calc_price").val());
    insert_commission = Number($("#insert_commission").text());
    

    result_commission = parseInt(insert_price * (insert_commission/1000000));

 

이부분에서 단순히 형변환(Number) 이전에 replace를 활용한 콤마를 제거하는 구문을 넣으셔야 합니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

에니악
5년 전
div class="view_wrapper clear">
<h2>입금 예정 금액은</h2>
<h3><strong id="result_price">0</strong> 원입니다.</h3>
</div>
</div>
</div>

<script>
function onlyNumber(event) {event = event || window.event;var keyID = (event.which) ? event.which : event.keyCode;if ( (keyID >= 48 && keyID <= 57) || (keyID >= 96 && keyID <= 105) || keyID == 8|| keyID == 9 || keyID == 46 || keyID == 37 || keyID == 39 || keyID == 188)return;else return false;}
function removeChar(event) {event = event || window.event; var keyID = (event.which) ? event.which : event.keyCode; if ( keyID == 8 || keyID == 46 || keyID == 37 || keyID == 39 ) return; else event.target.value = event.target.value.replace(/\B(?=(\d{3})+(?!\d))/g, ","); }
$('input[name="calc_cate"]').change(function(){
commission = $(this).val();
$("#insert_commission").empty().append(commission);
var cate_id = $('input[name="calc_cate"]:checked').attr('id');
var cate_name = $("label[for='"+cate_id+"']").text();
$("#insert_cate").empty().append(cate_name);



});

function get_price(){
insert_price = Number($("#calc_price").val());
insert_commission = Number($("#insert_commission").text());


result_commission = parseInt(insert_price * (insert_commission/1000000));
result_price = insert_price - result_commission;

$("#insert_price").empty().append(insert_price);
$("#result_price").empty().append(result_price);
$("#result_commission").empty().append(result_commission);


}
</script>



추가를 하여도 NaN라고 출력이 되네요 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인