NSNumberFormatter maximumFractionDigits和maximumSignificantDigits错误

时间:2014-12-25 05:03:11

标签: ios nsnumberformatter

在iOS 8上maximumFractionDigits上同时使用maximumSignificantDigitsNSNumberForamtter时,这是一个错误吗?

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.maximumFractionDigits = 2;  
formatter.maximumSignificantDigits = 3;
NSLog(@"%@", [formatter stringFromNumber:@(0.3333)]); // output 0.333 expected 0.33

如果我只使用maximumFractionDigits

,它可以正常工作
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
formatter.maximumFractionDigits = 2;
NSLog(@"%@", [formatter stringFromNumber:@(0.3333)]); // output expected .33

1 个答案:

答案 0 :(得分:0)

这不是错误。从文档中:

注意

将数字格式化程序配置为使用有效数字时,它将忽略用于设置整数或小数位的任何最小值或最大值。

https://developer.apple.com/documentation/foundation/nsnumberformatter/1417793-usessignificantdigits?language=objc

注意:如果maximumSignificantDigitsminimumSignificantDigits设置为任何值,则usesSignificantDigits会自动设置为true。这与maximumSignificantDigitsminimumSignificantDigits的文档相反:

必须将usesSignificantDigits属性设置为true,以使该属性影响格式设置行为。

您无需将usesSignificantDigits设置为true,它将自身设置为true。