diff --git a/packages/utils/callingNumberKorean.ts b/packages/utils/callingNumberKorean.ts index 7f0bf34..0075bf3 100644 --- a/packages/utils/callingNumberKorean.ts +++ b/packages/utils/callingNumberKorean.ts @@ -13,7 +13,7 @@ export default class CallingNumberKorean { "여섯", "일곱", "여덟", "아홉", "열", ] static canConvert(num: number): boolean { - return num < 100 && num >= 0 && !Number.isInteger(num) + return num < 100 && num >= 0 && Number.isInteger(num) } static convert(num: number): string { const firstDigit = num % 10; diff --git a/packages/utils/saferKorean.ts b/packages/utils/saferKorean.ts index 9776349..a04415a 100644 --- a/packages/utils/saferKorean.ts +++ b/packages/utils/saferKorean.ts @@ -175,8 +175,10 @@ export function saferKorean(input: string): string { const hasNoSuffix = suffix == ""; if (hasNoSuffix && dotCount == 0) { + // 일반 숫자는 인트로 읽음 return IntegerKorean.convertFromString(num) + postfix; } else if (hasNoSuffix && dotCount == 1) { + // 소수는 . 앞은 인트로, 뒤는 플로트로 읽음 const [intPart, floatPart] = num.split(/\./); return ( IntegerKorean.convertFromString(intPart) @@ -184,7 +186,8 @@ export function saferKorean(input: string): string { + FloatKorean.convert(floatPart) + postfix ) - } else if (suffix == "v") { + } else if ((suffix == "v" || postfix.length) && dotCount > 1) { + // 버전표기는 버전을 붙여서 return ( "버전" + FloatKorean.convert(num) @@ -193,6 +196,8 @@ export function saferKorean(input: string): string { ] ?? "") ); } else { + // 모든 경우에 속하지 않으면 영일이삼사 형태로 읽음 + // (예: 111.111.111.111 ip address) return FloatKorean.convert(num) + postfix; } })