Iphone NSString-浮点的最大小数点为1

Iphone NSString-浮点的最大小数点为1,iphone,objective-c,nsstring,nsnumberformatter,Iphone,Objective C,Nsstring,Nsnumberformatter,我想在字符串中使用浮点。我使用stringWithFormat和%f将我的浮点值集成到NSString中。问题是我只想显示一个小数(%.1f),但当没有小数时,我不想显示“.0” 我该怎么做 谢谢您可以像这样使用%g NSLog([NSString stringWithFormat: @"test: %g", (float)1.2]); NSLog([NSString stringWithFormat: @"test: %g", (float)1]) 您应该使用NSNumberFormatte

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

我该怎么做


谢谢

您可以像这样使用%g

NSLog([NSString stringWithFormat: @"test: %g", (float)1.2]);
NSLog([NSString stringWithFormat: @"test: %g", (float)1])

您应该使用
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]);
苹果公司的数据格式化编程指南中有一个链接,指向格式化标准。
方便参考

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

[numberFormatter stringFromNumber:myNumber]

感谢所有人,尤其是@falconcreek

NSNumberFormatter最近发生了一些变化。下面是一个将两个有效数字四舍五入的示例:

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

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

这是一个非常有用的方法。是时候在bug reporter上提交功能请求了。