我使用此代码在浮点值中的点后显示数字:
NSString *string = [NSString stringWithFormat:@"%.02f", floatValue];
如果floatValue可以像65.5234一样工作,字符串= 65.52 但是如果浮动值如65.5025则不起作用且字符串= 65.5
我该如何更改?我需要将我的字符串显示为65.50 我正在使用iOS 7
答案 0 :(得分:2)
NSNumberFormatter *format = [[NSNumberFormatter alloc]init];
[format setNumberStyle:NSNumberFormatterDecimalStyle];
[format setRoundingMode:NSNumberFormatterRoundHalfUp];
[format setMaximumFractionDigits:2];
[format setMinimumFractionDigits:2];
string = [NSString stringWithFormat:@"%@",[format stringFromNumber:[NSNumber numberWithFloat:65.50055]] ;
答案 1 :(得分:2)
这适用于代码:
float floatValue = 65.5025;
NSString *string = [NSString stringWithFormat:@"%.02f", floatValue];
NSLog(@"string: %@", string);
输出:
字符串:65.50
请提供一个完整的例子(如上所述),但不会产生预期的结果。
有关详细信息,请参阅man printf。
答案 2 :(得分:0)
你所拥有的对我来说似乎是正确的。在iPhone上的iOS7中用xcode 6.1.1构建了一个小测试
float val=65.5025;
NSString *string1 = [NSString stringWithFormat:@"%.02f", val];
NSString *string2 = [NSString stringWithFormat:@"%.03f", val];
NSString *string3 = [NSString stringWithFormat:@"%.04f", val];
NSLog(@"Test from string1 = %@",string1);
NSLog(@"Test from string2 = %@",string2);
NSLog(@"Test from string3 = %@",string3);
输出:
Test from string1 = 65.50
Test from string2 = 65.503
Test from string3 = 65.5025
看起来你的代码正在发生其他事情?您使用的是最新的xcode吗?在您的系统上尝试此示例并查看打印出来的内容。您的浮点变量可以在某处调整吗?