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

ニペブ - iPhone / iOSアプリ開発

iPhone / iOS アプリ開発方法と技術情報、入門レベルの初心者向けの記事を書いています。

iOSでNSNumberFormatterを使って金額をロケール(Locale)を指定してカンマ(Comma)表示

出力結果

iOS/iPhoneでNSNumberFormatterを使って金額をロケール(Locale)を指定してカンマ(Comma)表示で表示するソースです。

日本円: ¥ 100
日本円: ¥ 1,000
日本円: ¥ 1,001
米ドル: $1,000.99

使い方

    NSLog(@"日本円: %@", [self formatPrice:[NSNumber numberWithDouble:100]
                                 locale:[NSLocale localeWithLocaleIdentifier:@"jp_JP"]]);
    NSLog(@"日本円: %@", [self formatPrice:[NSNumber numberWithDouble:1000]
                                 locale:[NSLocale localeWithLocaleIdentifier:@"jp_JP"]]);
    NSLog(@"日本円: %@", [self formatPrice:[NSNumber numberWithDouble:1000.99]
                                 locale:[NSLocale localeWithLocaleIdentifier:@"jp_JP"]]);
    NSLog(@"米ドル: %@", [self formatPrice:[NSNumber numberWithDouble:1000.99]
                                 locale:[NSLocale localeWithLocaleIdentifier:@"en_US"]]);

ソースコード

// Locale を指定し、price を Comma(カンマ)付きの文字列として返すメソッド
- (NSString *)formatPrice:(NSNumber *)price locale:(NSLocale *)locale {
    
    // NSNumberFormatter の作成
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];

    // NSNumberFormatter の設定
    [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    [numberFormatter setLocale:locale];  // localeの設定
    [numberFormatter setUsesGroupingSeparator:YES]; // グルーピングを有効にする
    [numberFormatter setGroupingSize:3];  // グルーピングの単位を設定
    [numberFormatter setGroupingSeparator:@","]; // グルーピングのセパレータをカンマ(,)に設定
    
    // 文字列に変換する
    return [numberFormatter stringFromNumber:price];
}