NSNumberFormatter

2021. 12. 24. 18:04개발자료/iOS


반응형

# NSNumberFormatterDecimalStyle
10진수값 3자리 수마다 콤마(,)를 찍는다. 소수점 3자리 이하 값은 버린다.

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *num = @1234567890.1234;
NSLog(@"%@", [numberFormatter stringFromNumber:num]);
// 1,234,567,890.123

# NSNumberFormatterNoStyle
소수점 값은 버린다.

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterNoStyle];
NSNumber *num = @1234567890.1234;
NSLog(@"%@", [numberFormatter stringFromNumber:num]);
// 1234567890

# NSNumberFormatterPercentStyle
소수점 3자리 이하 값은 버리고 끝에 %가 붙는다. 3자리 수마다 콤마(,)를 찍는다. 

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
NSNumber *num = @1234567890.1234;
NSLog(@"%@", [numberFormatter stringFromNumber:num]);
// 123,456,789,012%

# NSNumberFormatterCurrencyStyle
통화량 기호값이 앞에 붙고 10진수값 3자리 수마다 콤마(,)를 찍는다. 소수점 값은 버린다. 

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSNumber *num = @1234567890.1234;
NSLog(@"%@", [numberFormatter stringFromNumber:num]);
// ₩1,234,567,890

# NSNumberFormatterScientificStyle
과학적 스타일 형식(A scientific style format)

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterScientificStyle];
NSNumber *num = @1234567890.1234;
NSLog(@"%@", [numberFormatter stringFromNumber:num]);
// 1.2345678901234E9

# NSNumberFormatterSpellOutStyle
숫자를 언어에 맞는 문자로 표시한다.

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle];
NSNumber *num = @1234567890.1234;
NSLog(@"%@", [numberFormatter stringFromNumber:num]);
// one billion two hundred thirty-four million five hundred sixty-seven thousand eight hundred ninety point one two three four
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterSpellOutStyle];
[numberFormatter setLocale:[ [NSLocale alloc] initWithLocaleIdentifier:@"ko_KR"]];
NSNumber *num = @1234567890.1234;
NSLog(@"%@", [numberFormatter stringFromNumber:num]);
// 십이억 삼천사백오십육만 칠천팔백구십점일이삼사

# 객체를 생성하지 않고 정적메소드를 이용하여 사용할수도 있다.
+ (NSString *)localizedStringFromNumber:(NSNumber *)num numberStyle:(NSNumberFormatterStyle)nstyle

NSString *strNumFormat = [NSNumberFormatter localizedStringFromNumber:@1234567890 numberStyle:NSNumberFormatterDecimalStyle];
NSLog(@"%@", strNumFormat);
// 1,234,567,890

 

반응형