我想在 NSString 中使用浮点数。我使用 stringWithFormat 和 %f 将我的浮点数集成到 NSString 中。问题是我只想显示一位小数 (%.1f) 但是当没有小数时我不想显示 '.0' 。
我怎样才能做到这一点?
谢谢
我想在 NSString 中使用浮点数。我使用 stringWithFormat 和 %f 将我的浮点数集成到 NSString 中。问题是我只想显示一位小数 (%.1f) 但是当没有小数时我不想显示 '.0' 。
我怎样才能做到这一点?
谢谢
我用 NSNumberFormatter 和 setMaximumFractionDigits 找到了答案,然后:
[numberFormatter stringFromNumber:myNumber]
感谢大家,尤其是@falconcreek
你应该使用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 中有一个指向格式化标准的链接。方便的参考编号格式模式
你可以像这样使用 %g
NSLog([NSString stringWithFormat: @"test: %g", (float)1.2]);
NSLog([NSString stringWithFormat: @"test: %g", (float)1])
NSNumberFormatter 最近发生了一些变化。以下是获取两位有效数字四舍五入的示例:
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterNoStyle];
[numberFormatter setUsesSignificantDigits:YES];
[numberFormatter setMaximumSignificantDigits:2];
这是一个很好的最新资源的链接。