我已经阅读了堆栈溢出中的很多问题,我想要的是删除小数后面的两个或两个以上的尾零。即:删除多于2尾零
12.00 ==> 12
12.30 ==> 12.30
12.35 ==> 12.35
12.345678 ==> 12.34
我已经阅读了堆栈溢出中的很多问题,我想要的是删除小数后面的两个或两个以上的尾零。即:删除多于2尾零
12.00 ==> 12
12.30 ==> 12.30
12.35 ==> 12.35
12.345678 ==> 12.34
NSNumberFormatter *twoDecimalPlacesFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[twoDecimalPlacesFormatter setMaximumFractionDigits:2];
[twoDecimalPlacesFormatter setMinimumFractionDigits:0];
return [twoDecimalPlacesFormatter stringFromNumber:number];
尝试:
NSLog(@"%0.2f", 12.345678);
或将其保存到一个NSString:
NSString *numberString = [NSString stringWithFormat:@"%0.2f", 12.345678];
编辑
错过了事实,你不希望任何零小数位。积分为这一个@dorada:
NSNumber *number = [NSNumber numberWithFloat:12.00];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:2];
[formatter setMinimumFractionDigits:0];
NSString *numberString = [formatter stringFromNumber:number];
[formatter release];
我喜欢@多拉达的答案,这里是一个完整的测试:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setMaximumFractionDigits:2];
[formatter setMinimumFractionDigits:0];
NSLog(@"12.00 ==> %@", [formatter stringFromNumber:[NSNumber numberWithFloat:12.00]]);
NSLog(@"12.30 ==> %@", [formatter stringFromNumber:[NSNumber numberWithFloat:12.30]]);
NSLog(@"12.35 ==> %@", [formatter stringFromNumber:[NSNumber numberWithFloat:12.35]]);
NSLog(@"12.345678 ==> %@", [formatter stringFromNumber:[NSNumber numberWithFloat:12.345678]]);
的NSLog输出:
12.00 ==> 12
12.30 ==> 12.3
12.35 ==> 12.35
12.345678 ==> 12.35
的语言/技术你在用吗? – Kent
'iPhone'标签,所以我假设的OBJ-C /可可 – Alex
可能是这可以帮助你.. http://stackoverflow.com/questions/829067/how-can-i-round-a浮点值到2位十进制位置 – Ballu