반응형
연관글
2025.04.18 - [Programing/javascript] - 💻 숫자를 한글 숫자 표기로 변환
2025.05.27 - [Programing/javascript] - JavaScript로 구현하는 금액의 영어 단위 변환 (Number to Words)
2025.05.27 - [Programing/javascript] - JavaScript로 구현하는 금액 단축 표기 (K / M / B 표기법)
2025.05.27 - [Programing/javascript] - JavaScript로 구현하는 게임 데미지 단위 축약 (A ~ ZZZZ)
금액 정보를 사용자에게 표시할 때, 단순히 숫자를 나열하기보다는 한글 단위를 함께 사용하는 것이 더 직관적인 전달 방식이 될 수 있습니다. 특히 큰 금액의 경우 자리수를 단위별로 나누어 표기하면 가독성이 높아집니다. 이 글에서는 자바스크립트를 사용하여 숫자를 "만원", "억원", "조원" 등 한글 금액 단위로 변환하는 함수를 작성하고, 이를 개선한 내용을 정리합니다.
🧩 요구사항
- 숫자 크기에 따라 "만", "억", "조" 등 단위를 자동으로 붙입니다.
- 단위별로 띄어쓰기가 적용됩니다.
예: 123456789 → 1억 2,345만 6,789원 - "1000000" → "100만" 등 줄임 단위 표기를 지원합니다.
- 입력이 문자열인 경우에도 처리 가능하며, 숫자 외 문자는 자동 제거합니다.
📌 함수
function formatKoreanCurrency(input) {
// 문자열이면 숫자만 남기기
let numeric = typeof input === "string" ? input.replace(/[^\d]/g, "") : input;
// 숫자로 변환
const amount = Number(numeric);
if (isNaN(amount) || amount < 0) return "0원";
if (amount === 0) return "0원";
const unitNames = ["", "만", "억", "조", "경", "해"];
const result = [];
let value = amount;
let unitIndex = 0;
while (value > 0) {
const chunk = value % 10000;
if (chunk > 0) {
// 단위별로 띄어쓰기 적용
result.unshift(`${chunk.toLocaleString()}${unitNames[unitIndex]}`);
}
value = Math.floor(value / 10000);
unitIndex++;
}
return result.join(" ") + "원";
}
🧪 사용 예시
formatKoreanCurrency("123456789"); // "1억 2,345만 6,789원"
formatKoreanCurrency("₩98,765,432,100원"); // "987억 6,543만 2,100원"
formatKoreanCurrency("1,234만원"); // "1,234만원"
formatKoreanCurrency(1000000000000); // "1조원"
formatKoreanCurrency("💵123억 45만💰"); // "123억 45만원"
🔍 기능 요약
- toLocaleString()을 사용하여 3자리마다 쉼표를 자동 적용합니다.
- 단위 구분은 10,000 단위를 기준으로 하며, 단위는 ["", "만", "억", "조", "경", "해"]를 사용합니다.
- 문자열 입력 시 정규식을 사용하여 숫자가 아닌 문자는 모두 제거됩니다.
🧠 활용 예시
이 함수는 다음과 같은 곳에 유용하게 활용될 수 있습니다:
- 전자상거래 웹사이트의 상품 가격 표시
- 금융 서비스에서 투자금, 자산 규모 등의 수치 표현
- 가계부, 회계 시스템의 수치 출력 등
반응형
'Programing > javascript' 카테고리의 다른 글
자바스크립트의 Behavioral 패턴: 객체 간의 소통을 설계하다 (0) | 2025.04.19 |
---|---|
자바스크립트의 Structural 패턴: 객체 구조의 유연함을 설계하다 (0) | 2025.04.19 |
자바스크립트의 Creational 패턴: 객체 생성의 정석 (0) | 2025.04.19 |
💻 숫자를 한글 숫자 표기로 변환 (1) | 2025.04.18 |
📷 JavaScript로 이미지 리사이징 후 PHP로 업로드하는 방법 (1) | 2025.04.16 |
🎂 자바스크립트로 나이 계산하는 3가지 방법 (0) | 2025.04.16 |
JavaScript로 URL 파라미터 업데이트하는 방법 (0) | 2025.04.16 |
javascript array sort(나이순 정렬) (0) | 2023.09.19 |