当在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

最佳答案

这不是错误。从文档中:

https://developer.apple.com/documentation/foundation/nsnumberformatter/1417793-usessignificantdigits?language=objc
注意:如果将maximumSignificantDigitsminimumSignificantDigits设置为任何值,则usesSignificantDigits会自动设置为true。这与maximumSignificantDigitsminimumSignificantDigits的文档矛盾:

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

关于ios - NSNumberFormatter maximumFractionDigits和maximumSignificantDigits错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27644341/

10-13 07:53