반응형
긴 숫자를 읽기 쉽게 변환하는 방법은 많은 곳에서 유용합니다.
특히, 큰 금액이나 데이터 크기를 간결하게 표시할 수 있습니다.
문제: 긴 숫자를 읽기 쉽게 변환하기
예를 들어, 24,343,800이라는 숫자를 그대로 표시하면 가독성이 떨어지고 UI가 깨지게 됩니다
만약 모든 값을 보여줘야 하는 중요한 값이 아니라면
이를 단위를 사용해 "2억+"처럼 표현한다면 훨씬 직관적일 것입니다.
아래와 같은 코드로 작성을 하면 좋을 것 같아요
function formatLargeNumber(number) {
if (typeof number !== "number" || isNaN(number)) {
throw new Error("입력 값은 숫자여야 합니다.");
}
const units = ["", "만", "십만+", "백만+", "천만+", "억+", "십억+"];
let unitIndex = 0;
// 10,000 단위로 나누기 시작
do {
if (unitIndex === 0) {
number = Math.floor(number / 10000); // 첫 번째는 10,000으로 나눔
} else {
number = Math.floor(number / 10); // 이후부터는 10씩 나눔
}
unitIndex++;
} while (number >= 10 && unitIndex < units.length - 1);
return `${Math.floor(number)}${units[unitIndex]}`;
}
// 예제 사용
console.log(formatLargeNumber(24343800)); // 결과: "2억+"
console.log(formatLargeNumber(123456)); // 결과: "1십만+"
console.log(formatLargeNumber(9876543210)); // 결과: "9십억+"
코드 작동 방식
입력 검증
입력 값이 숫자인지 확인합니다. 숫자가 아니면 오류를 발생시킵니다.
단위 배열 정의
const units = ["", "만", "십만+", "백만+", "천만+", "억+", "십억+"];
units 배열은 단위(만, 십만+, 백만+ 등)를 나타냅니다.
숫자 나누기 및 단위 선택
- 첫 번째 반복:
- 10000으로 나눠 만 단위로 줄입니다.
- 이후 반복:
- 10씩 나눠 단위를 점점 올립니다.
결과 반환
- 최종적으로 변환된 숫자와 적절한 단위를 합쳐 반환합니다.
반응형
'개발 > 개발 필기' 카테고리의 다른 글
억까 문제(문제 해결방안, 사고력 키우기) (0) | 2024.12.16 |
---|---|
네이버 오픈 API 사용 개선 경험 공유 (5) | 2024.12.06 |
웹 페이지 최적화 과정: 크롬 Lighthouse 사용 경험 공유 (0) | 2024.12.05 |
tmux 사용 (0) | 2024.12.04 |
마케팅 회사에서 개발자로 일하며 얻은 성장과 경험 (4) | 2024.12.03 |