NSNumberFormatter with comma decimal separator

后端 未结 5 1743
轻奢々
轻奢々 2020-12-03 13:30

I tried to convert an NSString like \"12000.54\" into \"12.000,54\". I wrote an NSNumberFormatter instance.

NSNumberFormatter *formatter = [[[NSNumberFormat         


        
5条回答
  •  感动是毒
    2020-12-03 14:32

    So the question is valid : I'm answering it myself :)

    I have a decimal value read from sqlite (e.g 12000 or 12000.54) directly transformed into NSString. I have to use different separator at some point in my code.

    NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease];
    [formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [formatter setNumberStyle:NSNumberFormatterDecimalStyle];
    [formatter setGroupingSeparator:@""];
    [formatter setDecimalSeparator:@"."];
    
    // Decimal values read from any db are always written with no grouping separator and a comma for decimal.
    
    NSNumber *numberFromString = [formatter numberFromString:@"12000.54"]];
    
    [formatter setGroupingSeparator:@" "]; // Whatever you want here
    [formatter setDecimalSeparator:@","]; // Whatever you want here
    
    NSString *finalValue = [formatter stringFromNumber:numberFromString];
    
    NSLog(@"%@",finalValue); // Print 12 000,54
    

    Problem solved.

提交回复
热议问题