NSNumberFormatter를 이요하면, 숫자를 통화로 변경할 수 있습니다.
NSString *number = @"숫자";
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber *numberFromString = [NSNumber numberWithInt:[number intValue]];
NSString *balance = [formatter stringFromNumber:numberFromString];
[formatter release];
지역포멧이 대한민국인 경우 변환 결과:
232220 ==> ₩232,220
-10263522 ==> -₩10,263,522
지역포멧이 미국인 경우 변환 결과:
232220 ==> $232,220.00
-10263522 ==> ($10,263,522.00) *()표기는 음수를 나타냄.
만약 "xxxx원" 이런식으로 보여지기를 원한다면 약간의 추가 작업이 필요합니다.
아래 함수는 그 처리를 하는 함수 입니다:
+ (NSString *)convertFromNumberToCurrency:(NSString *)number
{
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber *numberFromString = [NSNumber numberWithInt:[number intValue]];
NSString *balance = [formatter stringFromNumber:numberFromString];
[formatter release];
balance = [balance stringByReplacingOccurrencesOfString:@"(" withString:@"-"];
balance = [balance stringByReplacingOccurrencesOfString:@")" withString:@""];
NSRange range = [balance rangeOfCharacterFromSet:[NSCharacterSet symbolCharacterSet]];
while (range.location != NSNotFound) {
balance = [balance stringByReplacingCharactersInRange:range withString:@""];
range = [balance rangeOfCharacterFromSet:[NSCharacterSet symbolCharacterSet]];
}
balance = [balance stringByAppendingString:@"원"];
return balance;
}
결과는 지역포멧에 상관없이 다음과 같음:
232220 ==> 232,220원
-10263522 ==> -10,263,522원
댓글 없음:
댓글 쓰기