我試圖讓NSDecimalNumber打印出大數字,15個或更多數字。在15位數字處,我看到111,111,111,111,111。上述15位我看到1,111,111,111,111,110即使被格式化的數量是1111111111111111.NSDecimalNumber round long numbers
一個例子來說明我的問題:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
[formatter setMaximumSignificantDigits:25];
[formatter setUsesSignificantDigits:true];
NSDecimalNumber* test = [NSDecimalNumber decimalNumberWithString:@"123456789"];
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: 123456789
2010-09-16 09:24:16.784 SimpleCalc[739:207] str value: 12,345,678,901,234,600,000
什麼愚蠢的事情有我錯過了?