3

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

我怎样才能做到这一点?

谢谢

4

4 回答 4

3

我用 NSNumberFormatter 和 setMaximumFractionDigits 找到了答案,然后:

[numberFormatter stringFromNumber:myNumber]

感谢大家,尤其是@falconcreek

于 2010-04-29T20:37:18.353 回答
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 的 Data Formatting Programming Guide 中有一个指向格式化标准的链接。方便的参考编号格式模式

于 2010-04-29T14:36:26.910 回答
1

你可以像这样使用 %g

NSLog([NSString stringWithFormat: @"test: %g", (float)1.2]);
NSLog([NSString stringWithFormat: @"test: %g", (float)1])
于 2010-04-29T11:27:15.923 回答
0

NSNumberFormatter 最近发生了一些变化。以下是获取两位有效数字四舍五入的示例:

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterNoStyle];
[numberFormatter setUsesSignificantDigits:YES];
[numberFormatter setMaximumSignificantDigits:2];

这是一个很好的最新资源的链接。

于 2014-04-29T11:15:26.193 回答