
func convertToCurrencyFormat(price: Int) -> String {
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
numberFormatter.maximumFractionDigits = 0
numberFormatter.string(from: NSNumber(value: price))
let result = numberFormatter.string(from: NSNumber(value: price))!
return result
}
주어진 함수 convertToCurrencyFormat은 정수 값(price)을 받아서 숫자를 통화 형식처럼 표시하는 문자열로 변환하는 기능을 합니다. 하나씩 차근차근 설명해볼게요. 😊
func convertToCurrencyFormat(price: Int) -> String {
func: Swift에서 함수를 선언할 때 사용하는 키워드입니다.convertToCurrencyFormat: 함수 이름으로, 이 함수는 숫자를 통화 형식으로 변환하는 역할을 합니다.price: Int: 함수의 매개변수로, 정수(Int) 값을 입력받습니다. price는 변환하려는 숫자를 의미합니다.-> String: 함수의 반환 타입으로, 최종적으로 문자열(String)을 반환합니다.let numberFormatter = NumberFormatter()
NumberFormatter: 숫자를 다양한 형식으로 변환(예: 통화, 소수점 조정 등)할 수 있는 클래스입니다.numberFormatter: NumberFormatter의 인스턴스를 생성하여 사용합니다.numberFormatter.numberStyle = .decimal
numberStyle: NumberFormatter의 속성으로, 숫자를 어떤 형식으로 표시할지 설정합니다..decimal: 숫자를 소수점이 없는 일반 숫자 형식으로 표시합니다. 예를 들어, 1000000을 1,000,000처럼 쉼표로 구분된 형식으로 변환합니다.numberFormatter.maximumFractionDigits = 0
maximumFractionDigits: 숫자에서 표시할 최대 소수점 자리 수를 설정합니다.0: 소수점 이하 자릿수를 표시하지 않도록 설정합니다. 예를 들어, 1234.56은 1234로 표시됩니다.let result = numberFormatter.string(from: NSNumber(value: price))!
numberFormatter.string(from:): 숫자를 문자열로 변환하는 메서드입니다.NSNumber(value: price): price 값을 NSNumber로 변환합니다. NumberFormatter는 NSNumber 타입을 필요로 하기 때문입니다.!: 강제 언래핑으로, 반환값이 nil이 아님을 보장합니다. (이 부분은 안전하지 않을 수 있으므로 개선이 필요할 수 있습니다.)result: 변환된 결과 문자열이 저장됩니다.예를 들어, price가 1000000이라면, result는 "1,000,000"이 됩니다.
return result
result)을 반환합니다.price 값을 입력받습니다.NumberFormatter를 생성하고, 숫자를 쉼표로 구분된 형식으로 변환하도록 설정합니다.price 값을 문자열로 변환합니다.let formattedPrice = convertToCurrencyFormat(price: 1234567)
print(formattedPrice) // 출력: "1,234,567"
강제 언래핑(!) 제거
강제 언래핑은 안전하지 않은 방식입니다. 옵셔널 바인딩을 사용하면 더 안전합니다.
func convertToCurrencyFormat(price: Int) -> String {
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
numberFormatter.maximumFractionDigits = 0
if let result = numberFormatter.string(from: NSNumber(value: price)) {
return result
} else {
return "Invalid Number"
}
}
통화 스타일 지원
숫자를 단순히 쉼표로 구분하는 대신, 통화 기호(₩, $, € 등)를 추가하려면 numberStyle을 .currency로 설정할 수 있습니다.
numberFormatter.numberStyle = .currency
numberFormatter.currencySymbol = "₩" // 원하는 통화 기호 설정