読者です 読者をやめる 読者になる 読者になる

iOSアプリ開発の逆引き辞典

iPhone/iPadで使えるアプリ開発のTipsをまとめてみました

書式を指定して数値をさまざまなフォーマットの文字列に変換する

数値操作、数学 NSNumber

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