How to add commas to number every 3 digits in Objective C?

后端 未结 9 703

If I have a number int aNum = 2000000 how do I format this so that I can display it as the NSString 2,000,000?

相关标签:
9条回答
  • 2020-11-28 03:35

    Think some as i will get this post looking for sample. So if you are working with number make attention on next params:

    setNumberStyle:NSNumberFormatterCurrencyStyle // if you are working with currency
    

    It could be also

    setNumberStyle:NSNumberFormatterDecimalStyle
    

    All code is For ARC.

    If you are working with Integer and need to get result such as 200,000

    int value = 200000;
    NSNumberFormatter * formatter = [NSNumberFormatter new];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    NSString * newString =  [formatter stringFromNumber:[NSNumber numberWithInteger:value]];
    

    If you are working with Float and need to get result such as 200,000.00

    float value = 200000;
    NSNumberFormatter * formatter = [NSNumberFormatter new];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    [formatter setMaximumFractionDigits:2]; // Set this if you need 2 digits
    NSString * newString =  [formatter stringFromNumber:[NSNumber numberWithFloat:value]];
    

    EDIT

    To have ability to use different digital separators use NSLocale. Add to code where NSLocale is specified on Locale Identifier:

    [formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"]];
    

    or use current local:

    [formatter setLocale:[NSLocale currentLocale]];
    
    0 讨论(0)
  • 2020-11-28 03:36

    An easy solution could be this. My answer is almost same like @Nazir's answer but with a small trick.

    double current_balance = 2000000.00;
    
    NSNumberFormatter * formatter = [NSNumberFormatter new];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    //[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];  //if you want for currency with $ sign
    [formatter setMinimumFractionDigits:2]; // Set this if you need 2 digits
    [formatter setMaximumFractionDigits:2]; // Set this if you need 2 digits
    NSString * currency_format =  [NSString stringWithFormat:@"%@", [formatter stringFromNumber:[NSNumber numberWithDouble:current_balance]]];
    
    0 讨论(0)
  • 2020-11-28 03:36

    For Swift 4.0

    let formatter = NumberFormatter()
    
    formatter.numberStyle = .decimal
    
    formatter.minimumFractionDigits = 2
    
    formatter.maximumFractionDigits = 2
    
    let result = formatter.string(from: NSNumber(value: 123456))
    
    0 讨论(0)
提交回复
热议问题