我试图让 NSDecimalNumber 打印出 15 位或更多位的大数字。在 15 位数时,我看到 111,111,111,111,111。超过 15 位我看到 1,111,111,111,111,110,即使被格式化的数字是 1111111111111111。
一个例子来说明我的问题:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumSignificantDigits:25];
[formatter setUsesSignificantDigits:true];
NSDecimalNumber* test = [NSDecimalNumber decimalNumberWithString:@"12345678901234567890"];
NSString* output = [formatter stringFromNumber:test];
NSLog( @"num value: %@", test );
NSLog( @"str value: %@", output );
输出如下:
2010-09-16 09:24:16.783 SimpleCalc[739:207] num value: 12345678901234567890
2010-09-16 09:24:16.784 SimpleCalc[739:207] str value: 12,345,678,901,234,600,000
我错过了什么傻事?