Ich habe eine große NSDecimal
mit hoher Präzision. Wie folgt aus:Wie formatiere ich riesige NSDecimal zu string?
NSString *decStr = @"999999999999.999999999999";
NSDecimal dec;
NSScanner *scanner = [[NSScanner alloc] initWithString:decStr];
[scanner scanDecimal:&dec];
NSDecimalNumber *decNum = [[NSDecimalNumber alloc] initWithDecimal:*dec];
Ich kann leicht eine String-Darstellung meiner NSDecimal
mit dieser bekommen:
NSString *output = [decNum stringValue];
Oder
NSString *output = [decNum descriptionWithLocale:nil];
Aber es ist nie richtig für die Ausgabe auf dem Bildschirm formatiert:
output = 999999999999.999999999999
Ich will es Gruppentrennung haben, wie 999,999,999,999.999999999999
So habe ich versucht, ein NSNumberFormatter
:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setAllowsFloats:YES];
[formatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[formatter setNumberStyle:kCFNumberFormatterDecimalStyle];
NSString *output = [formatter stringFromNumber:resultDecNum];
Es endet mit auf den Punkt:
output = 1,000,000,000,000
Gibt es eine Möglichkeit, eine große hoher Präzision zu erhalten NSDecimal
richtig formatiert basierend auf Benutzer Gebietsschema ohne Genauigkeit zu verlieren?
meine Antwort unten mit einer anderen Idee und einigen (ungeprüften) Beispielcode bearbeitet – Thyraz