NSNumberFormatterクラス
を使って、数字を指定した書式の文字列に変換する方法をご紹介します。
数値を文字列に変換する
単純に数値を文字列に変換するには、NSNumberクラスのstringValueメソッドを使います。
NSInteger intValue = 1256; // NSIntegerからNSNumberへ変換する NSNumber *number = [NSNumber numberWithInteger:intValue]; // stringValueメソッドを使って、NSStringへ変換する NSString *result = [number stringValue];
数値を3桁ごとのカンマ区切り形式の文字列に変換する
NSInteger intValue = 1256; // NSIntegerからNSNumberへ変換する NSNumber *number = [NSNumber numberWithInteger:intValue]; // NSNumberFormatterオブジェクトを生成する NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; // 通貨フォーマットで出力する [formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; // 数値を3桁ごとに区切る [formatter setGroupingSize:3]; // 区切り文字としてカンマを使用する [formatter setGroupingSeparator:@","]; // NSNumberをフォーマッタを通して、NSStringへ変換する NSString *result = [formatter stringFromNumber:number];
現地通貨形式で文字列に変換する
NSInteger intValue = 1256; // NSIntegerからNSNumberへ変換する NSNumber *number = [NSNumber numberWithInteger:intValue]; // NSNumberFormatterオブジェクトを生成する NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; // 通貨フォーマットで出力する [formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; // NSNumberをフォーマッタを通して、NSStringへ変換する NSString *result = [formatter stringFromNumber:number]; NSLog(@"result: %@", result); // 出力: result: $1,256.00
パーセント形式で文字列に変換する
float floatValue = 0.0123; // NSIntegerからNSNumberへ変換する NSNumber *number = [NSNumber numberWithFloat:floatValue]; // 数値フォーマッタを生成する NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; // %フォーマットで出力する [formatter setNumberStyle:NSNumberFormatterPercentStyle]; // NSNumberをフォーマッタを通して、NSStringへ変換する NSString *result = [formatter stringFromNumber:number]; NSLog(@"result: %@", result); // 出力: result: 1%
スペル形式で文字列に変換する
NSInteger intValue = 1256; // NSIntegerからNSNumberへ変換する NSNumber *number = [NSNumber numberWithInteger:intValue]; // 数値フォーマッタを生成する NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; // スペルで出力する [formatter setNumberStyle:NSNumberFormatterSpellOutStyle]; // NSNumberをフォーマッタを通して、NSStringへ変換する NSString *result = [formatter stringFromNumber:number]; NSLog(@"result: %@", result); // 出力: result: one thousand two hundred fifty-six