JavaScript에서 숫자를 한국어 문자로 변환하는 법

숫자를 한글로 변환하는 작업은 어려운 작업일 수 있지만 JavaScript를 사용하면 비교적 쉽게 수행할 수 있다. 이 포스트에서는 임의의 숫자를 입력으로 받아 한국어로 변환하는 JavaScript 코드를 만드는 법을 알아볼 것이다. 출력은 쉼표로 구분된 숫자 그룹 형식이며 뒤에 만, 억, 조 등과 같은 단위 표시자가 오도록 만든다.

 

function numberToKorean(number) {
  let result = '';
  const units = ['', '만 ', '억 ', '조 ', '경 ', '해 ', '자 ', '양 ', '구 ', '간 ', '정 '];
  const unitIndex = Math.floor(Math.log10(number) / 4);
  let unit = units[unitIndex];
  if (!unit) return number;
  ...
}

위의 코드에서 먼저 마지막으로 리턴할 숫자를 보유하는 빈 문자열 'result'를 선언한다. 그뒤 한국어 번호 매기기 시스템에서 사용되는 모든 단위를 포함하는 배열을 선언합니다. unitIndex는 밑이 10인 입력 숫자의 로그를 4로 나누고 그 결과를 내림하여 계산된다. 이 계산은 변환에 사용할 단위의 인덱스를 반환한다.

그런 다음 unitIndex를 사용하여 단위 배열에서 단위를 검색한다. 단위를 찾을 수 없는 경우(즉, 입력된 숫자가 10,000 미만인 경우) 단순히 숫자 자체를 반환한다.

 

  let num = number / Math.pow(10, unitIndex * 4);
  num = Math.floor(num);
  const numStr = num.toString().split('');
  for (let i = 0; i < numStr.length; i++) {
    if (i !== 0 && (numStr.length - i) % 4 === 0) {
      result += ',';
    }
    result += numStr[i];
  }

 

다음으로 입력 숫자를 unitIndex에 4를 곱한 값을 10의 거듭제곱으로 하여 인자로 받은 숫자를 나눈다. 그러면 각 단위의 최대 범위인 1에서 9999 범위의 숫자가 제공된다. 예를들어 1,000,000,000(십억)을 인수로 계산하면 unitIndex = 2이고, num = 1000000000 / 10^8 = 10이 된다.

그런 다음 Math.floor 함수를 사용하여 숫자를 가장 가까운 정수로 내림한다.

숫자는 문자열로 변환되고 .toString().split('') 메서드를 사용하여 단일 숫자 배열로 분할하여 반복하고 오른쪽에서 네 번째 숫자마다 결과 문자열에 쉼표를 추가한다. 마지막으로 각 숫자를 결과 문자열에 추가한다.

 

  return result + unit;

마지막으로 결과 문자열에 단위를 붙여서 반환한다.

 

전체코드

function numberToKorean(number) {
  let result = '';
  const units = ['', '만 ', '억 ', '조 ', '경 ', '해 ', '자 ', '양 ', '구 ', '간 ', '정 '];
  const unitIndex = Math.floor(Math.log10(number) / 4);
  let unit = units[unitIndex];
  if (!unit) return number;

  let num = number / Math.pow(10, unitIndex * 4);
  num = Math.floor(num);
  const numStr = num.toString().split('');
  for (let i = 0; i < numStr.length; i++) {
    if (i !== 0 && (numStr.length - i) % 4 === 0) {
      result += ',';
    }
    result += numStr[i];
  }
  return result + unit;
}
© Copyright 2023 CLONE CODING