Ich versuche, NSDecimalNumber dazu zu bringen, große Zahlen auszudrucken, 15 oder mehr Ziffern. Bei 15 Ziffern sehe ich 111,111,111,111,111. Bei mehr als 15 Ziffern sehe ich 1,111,111,111,111,110, obwohl die formatierte Zahl 111111111111111111 ist.
Ein Beispiel zur Veranschaulichung meines Problems:
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 );
Und die Ausgabe sieht so aus:
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
Welche dumme Sache habe ich übersehen?