And*_*tmo 5 objective-c nsstring format-specifiers stringwithformat ios
我发现%g只在需要时显示小数.如果数字是整数,则不添加尾随.000,这样就好了.但是在例如1.12345的情况下,我希望它将答案缩短为1.123.在1.000的情况下,我想只显示1,因为%g已经存在.
我试图在字符串中指定%.3g,但这不起作用.如果有人有答案,我将不胜感激!
小智 11
我通过IEEE规范审查了"格式字符串"的功能,据我所知,你希望的行为是不可能的.
我建议您使用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);
Run Code Online (Sandbox Code Playgroud)
小智 2
NSLog(@"%.3g", 1.12345) 会得到什么?
我做了一些测试,据我了解你的问题,你走在正确的轨道上。这些是我的结果:
NSLog(@"%g", 1.000000); => 1
NSLog(@"%g", 1.123456789); => 1.12346
NSLog(@"%.1g", 1.123456789); => 1
NSLog(@"%.2g", 1.123456789); => 1.1
NSLog(@"%.3g", 1.123456789); => 1.12
NSLog(@"%.4g", 1.123456789); => 1.123
Run Code Online (Sandbox Code Playgroud)
要获得您想要的内容,请使用@“%.4g”。
| 归档时间: |
|
| 查看次数: |
2209 次 |
| 最近记录: |