gpt4 book ai didi

objective-c - NSNumberFormatter 前导 0 和小数

转载 作者:可可西里 更新时间:2023-11-01 03:42:39 29 4
gpt4 key购买 nike

有什么方法可以用前导 0 和小数来格式化 NSNumber 吗?例如,我需要有能力写 4.5 和 000。目前我有它允许小数,但不允许前导 0。

NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterNoStyle;

NSString *myString = [f numberFromString:@"4.5"];
NSLog(@"myString: %@",myString);

NSString *myOtherString = [f numberFromString:@"000"];
NSLog(@"myOtherString:%@",myOtherString);

上面的输出将是:“myString:4.5”和“myOtherString:0”。我需要能够同时输出“4.5”和“000”。

我看过 Apple 的“Data Formatting Guide”,但没怎么成功。

最佳答案

请注意 [f numberFromString:@"4.5"] 返回一个 NSNumber* 而不是 NSString*

你想要这样的东西:

NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterNoStyle;

NSNumber *myNumber;
NSString *myString;

myNumber = [f numberFromString:@"4.5"];
[f setNumberStyle:kCFNumberFormatterDecimalStyle];
myString = [f stringFromNumber:myNumber];
NSLog(@"myString: %@",myString);

myNumber = [f numberFromString:@"000"]; // Note that the extra zeros are useless
[f setFormatWidth:3];
[f setPaddingCharacter:@"0"];
myString = [f stringFromNumber:myNumber];
NSLog(@"myString: %@",myString);

NSLog输出:

我的字符串:4.5
我的字符串:000

如果您没有字符串开头,只需创建数字,例如:

myNumber = [NSNumber numberWithFloat:4.5];
myNumber = [NSNumber numberWithInt:0];

或者只使用标准格式:

myString = [NSString stringWithFormat:@"%.1f", [myNumber floatValue]];
myString = [NSString stringWithFormat:@"%03d", [myNumber intValue]];

或者,如果您不需要 NSNumber 表示,只需使用标准格式:

myString = [NSString stringWithFormat:@"%.1f", 4.5];
myString = [NSString stringWithFormat:@"%03d", 0];

关于objective-c - NSNumberFormatter 前导 0 和小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8873694/

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