我一直绊倒printf()函数系列的格式说明符.我想要的是能够在小数点后打印一个最大给定位数的double(或float).如果我使用:
printf("%1.3f", 359.01335);
printf("%1.3f", 359.00999);
Run Code Online (Sandbox Code Playgroud)
我明白了
359.013
359.010
Run Code Online (Sandbox Code Playgroud)
而不是期望的
359.013
359.01
Run Code Online (Sandbox Code Playgroud)
有谁能够帮我?
我有一个双倍值22.368511我想将它舍入到2位小数.即它应该返回22.37
我怎样才能做到这一点?
1.4324 =>"1.43"
9.4000 =>"9.4"
43.000 =>"43"9.4 =>"9.40"(错误)
43.000 =>"43.00"(错误)
在这两个问题中,答案都指向了NSNumberFormatter.所以应该很容易实现,但不适合我.
- (void)viewDidLoad {
[super viewDidLoad];
UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 200, 20)];
NSNumberFormatter *doubleValueWithMaxTwoDecimalPlaces = [[NSNumberFormatter alloc] init];
[doubleValueWithMaxTwoDecimalPlaces setNumberStyle:NSNumberFormatterDecimalStyle];
[doubleValueWithMaxTwoDecimalPlaces setPaddingPosition:NSNumberFormatterPadAfterSuffix];
[doubleValueWithMaxTwoDecimalPlaces setFormatWidth:2];
NSNumber *myValue = [NSNumber numberWithDouble:0.01234];
//NSNumber *myValue = [NSNumber numberWithDouble:0.1];
myLabel.text = [doubleValueWithMaxTwoDecimalPlaces stringFromNumber:myValue];
[self.view addSubview:myLabel];
[myLabel release];
myLabel = nil;
[doubleValueWithMaxTwoDecimalPlaces release];
doubleValueWithMaxTwoDecimalPlaces = nil;
}
Run Code Online (Sandbox Code Playgroud)
我也试过了
NSString *resultString = [NSString stringWithFormat: @"%.2lf", [myValue doubleValue]]; …Run Code Online (Sandbox Code Playgroud) 可能重复:
将一个小数限制为两位小数
我想在Objective C中以特定格式显示数字.这里,我只想用两个精度显示数字.
假设我的数字像25.5;
然后我想要下面给出的节目号码.
25.5 => 25.50