Preface
The range of NSDateFormatter in iOS is generally widespread, but NSNumberFormatter is rarely used compared to processing numbers. There are many enum types in NSNumberFormatter, which will save time for actual development.
NSNumberFormatter can be used to handle conversions between NSString and NSNumber, which can satisfy basic digital forms of conversion. I won't say much below, let's take a look at the detailed introduction
1: Format NSNumber to NSString using + localizedStringFromNumber:numberStyle: localization method
Round to integer
NSNumber *number = @(123423.5563); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterNoStyle]; // 123424
Monetary digital form
NSNumber *number = @(12342323.5563); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterDecimalStyle]; // 12,342,323.556
The form of currency, with localized currency symbols
NSNumber *number = @(12342323.5563); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterCurrencyStyle]; // ¥12,342,323.56
Percent form, and rounded to the integer part of the percentage
NSNumber *number = @(12342323.5563); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterPercentStyle]; // 1,234,232,356%
Scientific Counting Form
NSNumber *number = @(12342323.55665); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterScientificStyle]; // 1.234232355665E7
Localized spelling
NSNumber *number = @(12342323.55665); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterSpellOutStyle]; // 342,323,556,65
Ordinal form
NSNumber *number = @(12342323.55665); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterOrdinalStyle]; // The1234,2324
Currency Form Shows the currency symbols assigned by ISO
NSNumber *number = @(12342323.55665); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterCurrencyISOCodeStyle]; // CNY12,342,323.56
Currency Form
NSNumber *number = @(12342323.55665); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterCurrencyPluralStyle]; // 12,342,323.56RMB
Accounting form
NSNumber *number = @(12342323.55665); NSString *numStr1 = [NSNumberFormatter localizedStringFromNumber:number numberStyle:NSNumberFormatterCurrencyAccountingStyle]; // ¥12,342,323.56
2: Initialize the NSNumberFormatter object, use - (NSNumber *)numberFromString:(NSString *)string; custom format NSNumber to NSString
No style is specified (numStyle), the default (NSNumberFormatterNoStyle) is rounded, and the other styles are the same as those described in 1 above.
NSNumber *number = @(12342323.55665); NSNumberFormatter *formatter = [[NSNumberFormatter alloc]init]; // Specify currency style = NSNumberFormatterDecimalStyle; // Custom style [formatter setPositiveFormat:@"###0.###"]; // Separator between numbers [formatter setDecimalSeparator:@":"]; [formatter setCurrencyDecimalSeparator:@","]; // Prefix symbol = @"!"; // Suffix symbol = @"Yuan"; // Symbols added in the gap = @"?"; // The width of the format = 15; // Display at least two decimal places = 2; // Display up to three-digit integers = 5; NSString *numStr = [formatter stringFromNumber:number]; // ??????!323:557Yuan
Percent Style Display
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; [numberFormatter setPositiveFormat:@"0.00%;0.00%;-0.00%"]; NSLog(@"%@", [numberFormatter stringFromNumber:@4.0]); // Output: "400.00%". // LocalizationNSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init]; [numberFormatter setNumberStyle:NSNumberFormatterPercentStyle]; NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];[numberFormatter setLocale:usLocale]; NSLog(@"en_US: %@", [numberFormatter stringFromNumber:@4.0]); // Output: "en_US: 400%". NSLocale *faLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fa_IR"]; [numberFormatter setLocale:faLocale]; NSLog(@"fa_IR: %@", [numberFormatter stringFromNumber:@4.0]); // Output: "fa_IR: ٪۴۰۰."
Summarize
The above is the entire content of this article. I hope that the content of this article has a certain reference value for everyone's study or work. If you have any questions, you can leave a message to communicate. Thank you for your support.