gpt4 book ai didi

ios - NSNumberFormatter - 如何截断高值的小数位?

转载 作者:行者123 更新时间:2023-11-29 10:58:02 25 4
gpt4 key购买 nike

我已经设置了一个 NSNumberFormatter 如下:

formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMinimumFractionDigits:2];
[formatter setMaximumFractionDigits:2];
[formatter setGroupingSize:3];

但是,我想对其进行修改,使其不显示 100,000 或更大值的小数位。如果不创建另一个格式化程序,这可能吗?

最佳答案

如果你想截断大数的十进制值(打印324,329而不是324,329.12),你可以这样做。

NSNumberFormatter 上创建一个类别(新建文件 > Objective-C 类别),我将其命名为 TruncateHigh。这将创建两个文件,NSNumberFormatter+TruncateHigh.hNSNumberFormatter+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 个小数,大于的数字没有小数。您可以自定义代码以使其完全按照您的意愿工作。

如果有遗漏请告诉我。

关于ios - NSNumberFormatter - 如何截断高值的小数位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17339996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com