채택완료

금액란에 소수점 가능하도록 script변경 문의

2020-05-26 (화) 13:40:25 2,880

호주에서 달러금액을  표시하려면 소수점 둘째자리까지 적용해야합니다.

그누보드5 스킨에 루미집사님이 올리신 게시판 스킨 중에서 

스크립트부분만 따왔는데요.

보시고 어디를 고쳐야 소수점이 가능한지 알려주시면 감사하겠습니다.

<?php
include_once("_common.php");
include_once($board_skin_path."/skin.function.php");

// 지출내역 불러오기
$dataA = get_subdata($wr_id);
?>

<script>

var array = <?php echo json_encode($dataA); ?>; // DB 값
var calculate = []; // 계산에 필요한 정보를 담을 배열
var supply = []; // 합게금액
$(document).ready(function() {

    /**
     * 동적테이블 플러그인 시작.
     * @param { string } autoTabId 엔터키 입력시 커서(focus) 자동 이동 적용될 영역의 className 또는 IdNmae
     * @param { string } selector 동적테이블의 <tbody>의 className 또는 IdNmae
     * @param { string } delBtn 테이블 ROW 삭제버튼의 ClassName
     * @param { string } unique 자료의 고유번호 선택자(id_no, wr_id, no, ids... 등등..)
     * @param { string } delUrl 자료삭제 URL (행 자료삭제)
     * @param { string } autoTabclass 엔터키입력시 자동으로 포커스 이동 가능 ClassName
     * @param { Object } dbData (배열값) DB 데이타 배열.
     * @param { Array } items (배열값) 동적테이블을 구성하고 있는 요소들의 속성. 
     * @param { function } delSucess 행 삭제시 추가로 실행될 사용자 함수
     */
    rumiTable.rumiLoad({
        autoTabId : "#doc_zone",
        selector: ".work_item",
        delBtn  : ".delItemBtn",
        unique  : ".id_no",
        delUrl  :  cfg.board_skin_url+"/ajax.delete.php?bo_table="+cfg.bo_table,
        autoTabclass : "input.insTab",
        dbData : array,
        items : [
            { selector:'doc_sub', type:'text', number:false },
            { selector:'id_no', type:'text', number:false },            
            { selector:'doc_cost', type:'text', number:true },
            { selector:'doc_etc', type:'text', number:false }
        ],
        // row 삭제시 실행될 사용자 함수
        delSuccess : function(e){
            
            // 삭제성공시 사용자 추가 함수를 실행할 수 있습니다.
            // 선택한 행 삭제후 실행되며, 삭제된 이후의 행이 한단계씩 올라가므로 계산에 필요한 배열을 초기화후 재배열
            var tr_cnt = $(".doc_cost").length;
            calculate = []; // 계산에 필요한 배열 초기화
            for(i=0; i < tr_cnt; i++) {
                var val = $(".doc_cost").val() * 1;
                if(val > 0) {
                    calCulate(i);
                }
            }            
        }
    });

    $(".work_item").on("keyup", "input.doc_cost", function(e) {
        var idx = $(this).index(".doc_cost");
        calCulate(idx);
    });
    
    $(".doc_cost").number(true, 0); 
    
    array_sum(array);
});

/**
 * 입력한 금액을 배열에 추가 ( 주의 : 서식파일에 포함되어야 합니다.)
 * @param {Number} idx 행번호
 */
function calCulate(idx){

    // 입력한 금액을 배열로 담는다.
    calculate[idx] = { 
        doc_cost : $('.doc_cost').eq(idx).val() * 1
    };

    supply[idx]= calculate[idx].doc_cost; // 필드별 합계
    sum_supply = supply_sum(supply); // 소계의 합계

    $(".cost_sum").val(number_format(sum_supply));
    $(".cost_sum_txt").text(number_format(sum_supply));

}
</script>

|

답변 1개 / 댓글 1개

채택된 답변
+20 포인트

number_format() 함수가 반올림하고 쉼표를 주는 함수인것 같네요.

직접 만든 함수라서 해당 소스가 있어야 도와드릴 수 있습니다.

이 함수에서 반올림을 할때,

100을 곱한 후 반올림하고, 다시 100으로 나누면

소수점 아래 2자리로 됩니다.

답변에 대한 댓글 1개

2020-05-27 (수) 09:53:55
아이쿠, 밤늦게까지....답변 감사합니다.
나름 이리저리 해보다가 완벽하지는 않지만 해법을 찾은 것 같습니다.
감사합니다.

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