在iOS 8上maximumFractionDigits
上同时使用maximumSignificantDigits
和NSNumberForamtter
时,这是一个错误吗?
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
答案 0 :(得分:0)
这不是错误。从文档中:
注意
将数字格式化程序配置为使用有效数字时,它将忽略用于设置整数或小数位的任何最小值或最大值。
注意:如果maximumSignificantDigits
或minimumSignificantDigits
设置为任何值,则usesSignificantDigits
会自动设置为true。这与maximumSignificantDigits
和minimumSignificantDigits
的文档相反:
必须将usesSignificantDigits属性设置为true,以使该属性影响格式设置行为。
您无需将usesSignificantDigits
设置为true,它将自身设置为true。