Ich habe eine NSNumberFormatter Beispiel wie folgt aus:Warum zeigt NSNumberFormatter nicht alle Nachkommastellen an?
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setAlwaysShowsDecimalSeparator:NO];
[formatter setAllowsFloats:YES];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[formatter setMinimumFractionDigits:0];
[formatter setNumberStyle:kCFNumberFormatterDecimalStyle];
Dann stelle ich einen Wert wie diese und ausdrucken:
NSNumber *number = [NSNumber numberWithFloat:4932.79661];
NSLog(@"%@", [formatter stringFromNumber:number]);
Was ich erhalte, ist: es
4,932.796
fehlen 2 Ziffern. Jetzt ist das merkwürdige Ding, wenn ich die Zahl viel größer mache, d. H. 49328324.79661, würde ich nur 2 Nachkommastellen bekommen. Irgendeine Idee, was mit dem Formatierer falsch sein könnte? Muss ich es ausdrücklich sagen, um eine bestimmte Präzision zu verwenden?
tatsächlich scheint das zu helfen, aber es zwingt 20 von ihnen zu zeigen, was nicht immer korrekt ist. Ich frage mich, wie Taschenrechner-Entwickler und andere das machen, indem sie formatierte Fließkomma-Zahlen mit nur so viel Präzision zeigen, wie sie einzeln benötigt werden, um das darzustellen, was angezeigt werden soll. –
Taschenrechner haben normalerweise eine feste Anzahl von Zeichen, die sie anzeigen können. Sicher würden sie diese Zahl auf die Anzahl der Zeichen setzen, die sie möglicherweise anzeigen könnten, und dann, sobald der Wert in einer Zeichenfolge ist, schneiden Sie einfach das Ende ab. – rein