有什么方法可以格式化带有前导 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”。
我看过苹果公司的“数据格式化指南”,但没有取得多大成功。
注意[f numberFromString:@"4.5"]
返回一个NSNumber*
not a 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];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)