我发现%g仅在需要时显示小数。如果数字为整数,则不添加尾随的.000,那就太好了。
但是在例如1.12345的情况下,我希望它将答案简化为1.123。
在1.000的情况下,我只想显示1,因为%g已经这样做了。

我尝试在字符串中指定%.3g,但这不起作用。
如果有人有答案,我将不胜感激!

最佳答案

我通过IEEE Specification审查了“格式字符串”的功能,据我了解,您希望的行为是不可能的。

我建议您使用NSNumberFormatter类。我写了一个符合您期望的行为的示例。希望对您有所帮助:

NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:2];
[numberFormatter setDecimalSeparator:@"."];
[numberFormatter setGroupingSeparator:@""];
NSString *example1 = [numberFormatter stringFromNumber:[NSNumber numberWithFloat:123456.1234]];
NSLog(@"%@", example1);
NSString *example2 = [numberFormatter stringFromNumber:[NSNumber numberWithFloat:123456.00]];
NSLog(@"%@", example2);

关于objective-c - 正确使用格式说明符,以便在需要时最多显示三个小数,否则显示零个小数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7271560/

10-10 20:29