14

NSStringは、「1000.00」や「1008977.72」と同じように、

どうすれば「1,000.00」と「1,008,977.00」にフォーマットできますか

それが私の質問です、そしてこれで私を助けてください、前もってありがとう。

4

2 に答える 2

47

私はそれを長くはしませんでした。コードは次のとおりです。

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setGroupingSeparator:@","];
[numberFormatter setGroupingSize:3];
[numberFormatter setUsesGroupingSeparator:YES];
[numberFormatter setDecimalSeparator:@"."];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *theString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:1008977.72]];

それが役に立てば幸い


編集

Olieが尋ねたように、現在のロケール設定を使用してグループ化/小数点自体を設定するコードを投稿します。

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setLocale:[NSLocale currentLocale]];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
NSString *theString = [numberFormatter stringFromNumber:[NSNumber numberWithDouble:1008977.72]];
NSLog(@"The string: %@", theString);

[NSLocale localeWithLocaleIdentifier:]の代わりに使用すると[NSLocale currentLocale]、次の結果が得られました。

[NSLocale localeWithLocaleIdentifier:@"be_NL"]
The string: 1 008 977,72
[NSLocale localeWithLocaleIdentifier:@"en_GB"]
The string: 1,008,977.72
[NSLocale localeWithLocaleIdentifier:@"DE"]
The string: 1.008.977,72
[NSLocale localeWithLocaleIdentifier:@"en_US"]
The string: 1,008,977.72
于 2012-04-11T09:38:31.260 に答える
1

Swiftで翻訳したばかり:

    let formatter = NumberFormatter()
    formatter.groupingSeparator = ","
    formatter.groupingSize = 3
    formatter.usesGroupingSeparator = true
    formatter.decimalSeparator = "."
    formatter.numberStyle = .decimal
    formatter.maximumFractionDigits = 2
    formatter.minimumFractionDigits = 2
    formatter.minimumIntegerDigits = 1
    let result = formatter.string(from: NSNumber(value: value)) ?? "0.00"
于 2017-08-01T13:04:15.660 に答える