gpt4 book ai didi

iphone - 格式化 NSNumber 对象时如何指定小数位?

转载 作者:行者123 更新时间:2023-12-03 16:04:27 25 4
gpt4 key购买 nike

我正在使用以下一段 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 位小数。

我怎样才能实现这一目标?

最佳答案

您的格式字符串应该为您希望始终存在的每个小数位添加一个“0”。

[formatter setFormat:@"###.00"];

对于“55.23”和“.23”和“.20”

[formatter setFormat:@"##0.00"];

对于“55.23”和“0.23”和“0.20”

参见Number Format String Syntax (Mac OS X Versions 10.0 to 10.3)

或者您可以使用 10.4 格式化程序 - setMinimumFractionDigits:- setMaximumFractionDigits:两者都设置为 2。

关于iphone - 格式化 NSNumber 对象时如何指定小数位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/524827/

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