通过NSNumberFormatter,可以将NSNumber和NSString相互转换
- (nullable NSString *)stringFromNumber:(NSNumber *)number;
- (nullable NSNumber *)numberFromString:(NSString *)string;
numberStyle,输出不同的数字格式
// 原值123456.654321
enum NSNumberFormatterStyle {
NSNumberFormatterNoStyle, // 123457,默认格式,去掉小数点
NSNumberFormatterDecimalStyle, // 123,456.654,以国际化格式输出,保留3位小数
NSNumberFormatterCurrencyStyle, // ¥123,456.65,以货币通用格式输出,保留2位小数
NSNumberFormatterPercentStyle, // 12,345,665%,以百分制形式输出,乘以100,同时在最后加上百分号
NSNumberFormatterScientificStyle, // 1.23456654321E5,以科学计数法输出
NSNumberFormatterSpellOutStyle, // 十二万三千四百五十六点六五四三二一,原值的中文表示
NSNumberFormatterOrdinalStyle, // 第123,457
NSNumberFormatterCurrencyISOCodeStyle, // CNY 123,456.65
NSNumberFormatterCurrencyPluralStyle, // 123,456.65 人民币
NSNumberFormatterCurrencyAccountingStyle // ¥123,456.65
}
roundingMode,取整方式
NSNumberFormatterRoundingMode {
NSNumberFormatterRoundCeiling, // 向上取整
NSNumberFormatterRoundFloor, // 向下取整
NSNumberFormatterRoundDown, // 向0的方向取整
NSNumberFormatterRoundUp, // 远离0的方向取整
NSNumberFormatterRoundHalfEven, // 若是奇数则四舍五入,若是偶数则五舍六入
NSNumberFormatterRoundHalfDown, // 五舍六入,负数先取绝对值再五舍六入再负数
NSNumberFormatterRoundHalfUp // 四舍五入
}
positivePrefix,前缀符号
positiveSuffix,后缀符号
negativePrefix,前缀符号
negativeSuffix,后缀符号
// 原值123456.654321,输出 $123457元
formatter.positivePrefix = @"$"; // 前缀符号
formatter.positiveSuffix = @"元"; // 后缀符号
// 原值-123456.654321,输出^123457元亏损
formatter.negativePrefix = @"^"; // 前缀符号
formatter.negativeSuffix = @"元亏损"; // 后缀符号
formatWidth,格式宽度
paddingCharacter,填充符
paddingPosition,填充位置
enum NSNumberFormatterPadPosition {
NSNumberFormatterPadBeforePrefix,
NSNumberFormatterPadAfterPrefix,
NSNumberFormatterPadBeforeSuffix,
NSNumberFormatterPadBeforeSuffix
}
示例代码
NSNumberFormatter *formatter = [NSNumberFormatter new];
formatter.formatWidth = 10;
formatter.paddingCharacter = @"#";
formatter.positivePrefix = @"$"; // 前缀符号
formatter.positiveSuffix = @"元"; // 后缀符号
// $#####123元
formatter.paddingPosition = NSNumberFormatterPadAfterPrefix;
// #####$123元
formatter.paddingPosition = NSNumberFormatterPadBeforePrefix;
// $123#####元
formatter.paddingPosition = NSNumberFormatterPadBeforeSuffix;
// $123元#####
formatter.paddingPosition = NSNumberFormatterPadAfterSuffix;
groupingSize,数字分割的大小
groupingSeparator,数字分割符
// 原值输出123,456,789,格式化后输出1;2345;6789
formatter.groupingSize = 4;
formatter.groupingSeparator = @";";
maximumFractionDigits,小数位最少位数
minimumFractionDigits,小数位最多位数
maximumIntegerDigits,整数最多位数
minimumIntegerDigits,整数最少位数
decimalSeparator,小数点样式
这篇博客详细介绍了NSNumberFormatter的用法,包括将NSNumber转换为NSString和反之,以及设置不同数字风格如货币、百分比等。还讨论了取整方式、符号前缀和后缀、格式宽度和填充等属性的使用,并提供了示例代码展示如何实现各种格式化效果。

2843

被折叠的 条评论
为什么被折叠?



