【发布时间】:2009-02-08 00:15:59
【问题描述】:
我正在使用下面的 Objective-C 代码来格式化 NSNumber,它在大多数情况下都能正常工作,但是当 NSNumber 对象包含一个整数(没有小数部分)时,它并不能完全满足我的要求)。
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(80.0f, 90.0f, 225.0f, 40.0f)];
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor whiteColor];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setFormat:@"###.##"];
int bytes = 1024 * 1024;
NSNumber *total = [NSNumber numberWithFloat:([self.totalFileSize floatValue] / bytes)];
label.text = [NSString stringWithFormat:@"0.00 MB of %@ MB", [formatter stringFromNumber:total]];
因此,例如,如果self.totalFileSize 包含 55.2300,它将在我的UILabel 上显示“55.23”。但如果同一个变量包含 55,它只会在标签上显示“55”。
我真正想要的是此代码始终在输出中包含 2 位小数。
我怎样才能做到这一点?
【问题讨论】:
标签: iphone cocoa cocoa-touch