如果您想截断大数的十进制值(打印324,329而不是324,329.12),您可以执行以下操作。
NSNumberFormatter
在(New File > Objective-C Category)上创建一个类别,我称之为 mine TruncateHigh
。这将创建两个文件,NSNumberFormatter+TruncateHigh.h
和NSNumberFormatter+TruncateHigh.m
.
NSNumberFormatter+TruncateHigh.h:
#import <Foundation/Foundation.h>
@interface NSNumberFormatter (TruncateHigh)
- (NSString *)customStringFromNumber:(NSNumber *)number;
@end
NSNumberFormatter+TruncateHigh.m:
#import "NSNumberFormatter+TruncateHigh.h"
@implementation NSNumberFormatter (TruncateHigh)
- (NSString *)customStringFromNumber:(NSNumber *)number {
if (number.floatValue > 100000) {
[self setMaximumFractionDigits:0];
} else {
[self setMaximumFractionDigits:2];
}
return [self stringFromNumber:number];
}
@end
YourViewController.m 中的用法:
#import "YourViewController.h"
#import "NSNumberFormatter+TruncateHigh.h"
@implementation YourViewController
- (void)viewDidLoad
{
[super viewDidLoad];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setGroupingSize:3];
NSNumber *smallNumber = [NSNumber numberWithFloat:12386.43];
NSNumber *bigNumber = [NSNumber numberWithFloat:8567386.43];
NSLog(@"Small Number : %@", [formatter customStringFromNumber:smallNumber]);
NSLog(@"Big Number : %@", [formatter customStringFromNumber:bigNumber]);
}
@end
这是日志:
test[7050:11303] Small Number : 12,386.43
test[7050:11303] Big Number : 8,567,386
这将打印小于 100000 的数字和 2 个十进制数字,以及大于没有十进制值的数字。您可以自定义代码以使其完全按照您的意愿工作。
让我知道是否缺少某些东西。