728x90

[소스코드]

    /**
     * @description 숫자를 한글(금액단위)로 변환한다.
     * @param {number} 숫자, 금액(정수)
     * @return {string} 한글(금액단위) 문자열
     */
    numToKor: function (sNum) {

                if( typeof(sNum) === 'number' ){
                        sNum = sNum.toString();
                }
                                        
                var result       = '';
                var bUnitWords   = ['', '만', '억', '조', '경'];
                var sUnitWords   = ['천', '백', '십', '']
                var numKor       = ['영', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구'];
                var unitPow      = 10000;
                var convNumArray = [];

                for (var i = 0; i < bUnitWords.length; i++){

                    var bUnitValue = (sNum % Math.pow(unitPow, i + 1)) / Math.pow(unitPow, i);
                        bUnitValue = Math.floor(bUnitValue);
                        
                    if (bUnitValue > 0){
                        bUnitValue = bUnitValue.toString();
                        bUnitValue = bUnitValue.padStart(4, '0');

                        var convBigUintValue = '';
                                    
                        for(var j=0; j<bUnitValue.length; j++){

                                var cutNum = bUnitValue.charAt(j);

                                if(cutNum > 0){
                                        convBigUintValue += numKor[cutNum] + sUnitWords[j];
                                }
                        }

                        convNumArray[i] = convBigUintValue;

                    }
                }

                for (var i = 0; i < convNumArray.length; i++){
                        if(!convNumArray[i]) continue;
                        result = convNumArray[i] + bUnitWords[i] + result;
                }

                console.log('입력값 : ' + sNum + ', 출력값 : ' + result);

                return result;
        
    },

 

[실행결과]

[첨부파일]

test.html
0.00MB

 

728x90
반응형

+ Recent posts