ios - NSNumberFormatter numberFromString 问题

标签 ios objective-c nsstring nsnumber nsnumberformatter

我需要从 UITextfield 中取出一个字符串并将其格式化为以下内容:

4.99999 -> 4.999
4.12    -> 4.12
.89     -> 0.89

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setMaximumFractionDigits:3];
[numberFormatter setPositiveFormat:@"##0.###"];

DLog(@"formatted number %@",[numberFormatter numberFromString:string]);

问题是,当我在文本字段中键入 0.999978 并且格式化的数字是 0.999978(这是不正确的)时,它应该是 0.999

最佳答案

试一试:

NSNumber  *aNum = [NSNumber numberWithDouble:[string doubleValue]];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
[numberFormatter setPositiveFormat:@"##0.###"];
[numberFormatter setRoundingMode:NSNumberFormatterRoundFloor];

DLog(@"formatted string %@",[numberFormatter stringFromNumber:aNum]);

关于ios - NSNumberFormatter numberFromString 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31106312/

相关文章:

objective-c - 在 iPhone 上使用 NSRegularExpression 提取 URL

ios - 打开父应用程序 :reply: error with asynchronous network call in containing app

IOS:打开和关闭一些 View Controller

objective-c - 如何检查 Objective-C 中是否存在可变数组对象?

ios - iOS:如何更改字符串中某些字符的颜色/字体

ios - 在 Objective-C 的实现文件中的 setter 方法中去除 NSString 中的特殊字符

ios - NSManagedContext 需要很长时间才能持久

iPhone:可变长度的UILabel,多行字符串,多种字体

ios - UINavigationBar 后退按钮在某些设备或模拟器上显示 "Back"标题,在其他设备或模拟器上显示之前的 View Controller 标题

iphone - iOS 中从左向右滚动时如何获取 Web View 中的滚动方向?