NSNumberFormatter格式不正确

时间:2014-05-21 14:10:33

标签: ios objective-c cocoa-touch nsnumberformatter

我正在开发一个需要NSNumberFormatter的简单应用。我试图用以下代码将数字舍入到2位小数:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.locale = [NSLocale currentLocale];
formatter.formatterBehavior = NSNumberFormatterBehaviorDefault;
formatter.numberStyle = NSNumberFormatterDecimalStyle;
formatter.usesSignificantDigits = NO;

formatter.maximumFractionDigits = 2;
NSLog(@"%@",[formatter numberFromString:@"123.12345"]);

但是,日志输出显示为:

123.12345

我完全不知道为什么会这样。

1 个答案:

答案 0 :(得分:2)

NSNumber *num = [formatter numberFromString:@"123.12345"];
NSLog(@"num: %@", num);

从字符串值创建NSNumberNSNumber没有任何格式,只有值。 NSNumber可能是以@123.12345

等多种不同方式创建的。{1}}

现在使用NSString

中所需的格式创建NSNumber
NSString *strNum = [formatter stringFromNumber:@123.12345];
NSLog(@"strNum: %@", strNum);

NSLog输出:

  

num:123.12345
  strNum:123.12