我想在NSString中使用float。我使用stringWithFormat和%f将我的浮点数集成到NSString中。问题是我只想显示一个小数(%。1f)但是当没有小数时我不想显示'.0'。
我该怎么做?
由于
答案 0 :(得分:3)
我找到了NSNumberFormatter和setMaximumFractionDigits的答案,然后:
[numberFormatter stringFromNumber:myNumber]
感谢大家特别是@falconcreek
答案 1 :(得分:2)
您应该使用NSNumberFormatter
。
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormat:@"#,##0.#"];
NSNumber *oneThousand = [NSNumber numberWithFloat:1000.0];
NSNumber *fivePointSevenFive = [NSNumber numberWithFloat:5.75];
NSLog(@"1000.0 formatted: %@", [numberFormatter stringFromNumber:oneThousand]);
NSLog(@"5.75 formatted: %@", [numberForatter stringFromNumber:fivePointSevenFive]);
Apple的数据格式编程指南中有一个格式标准链接。 方便参考Number Format Patterns
答案 2 :(得分:1)
你可以像这样使用%g
NSLog([NSString stringWithFormat: @"test: %g", (float)1.2]);
NSLog([NSString stringWithFormat: @"test: %g", (float)1])
答案 3 :(得分:0)
NSNumberFormatter最近发生了一些变化。以下是将两位有效数字四舍五入的示例:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterNoStyle];
[numberFormatter setUsesSignificantDigits:YES];
[numberFormatter setMaximumSignificantDigits:2];
这里a link是一个好的,最近的资源。