NSString - 浮点数的最大值1

时间:2010-04-29 09:20:53

标签: iphone objective-c nsstring nsnumberformatter

我想在NSString中使用float。我使用stringWithFormat和%f将我的浮点数集成到NSString中。问题是我只想显示一个小数(%。1f)但是当没有小数时我不想显示'.0'。

我该怎么做?

由于

4 个答案:

答案 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是一个好的,最近的资源。