jpm*_*jpm 10 iphone cocoa cocoa-touch
我正在使用下面的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]];
Run Code Online (Sandbox Code Playgroud)
因此,例如,如果self.totalFileSize持有55.2300,它将显示"55.23",因为它应该在我的身上UILabel.但如果同一个变量保持55,它只会在标签上显示"55".
我真正想要的是这个代码总是包含输出中的2个小数位.
我怎样才能做到这一点?
Nat*_*ger 16
0对于您希望始终存在的每个小数位,您的格式字符串应该有一个" ".
[formatter setFormat:@"###.00"];
Run Code Online (Sandbox Code Playgroud)
为"55.23"和".23"和".20"
[formatter setFormat:@"##0.00"];
Run Code Online (Sandbox Code Playgroud)
为"55.23"和"0.23"和"0.20"
请参见数字格式字符串语法(Mac OS X版本10.0到10.3)
或者你可以使用10.4格式化程序--setMinimumFractionDigits:和- setMaximumFractionDigits:同时设置为2.
| 归档时间: |
|
| 查看次数: |
23190 次 |
| 最近记录: |