Frage

Ich verstehe nicht, wie NSNumberFormatterPercentStyle funktioniert!

Beispiel:

NSNumber *number = [NSNumber numberWithFloat:90.5];
NSNumberFormatter *percentageFormatter = [[[NSNumberFormatter alloc] init] autorelease];
[percentageFormatter setNumberStyle:NSNumberFormatterPercentStyle];

NSString *strNumber = [percentageFormatter stringFromNumber:numbericString];
NSLog (strNumber);  // Output: 9,050%

Ich will einfach zeigen "90,5%" (unter Beachtung NSLocal). Was ist NSNumberFormatterPercentStyle mit 90,5 tun, und warum? Und wie kann ich mein gewünschtes Ergebnis!?

War es hilfreich?

Lösung

Die Annahme, dass die Zahl im Bereich von 0-1 ist, wie es ist, ein Prozent

so 0.905 würden Sie 90,5% erhalten.

Andere Tipps

Just stellen Sie den Multiplikator auf 1 wenn Ihre Zahlen bereits in Prozent sind.

numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setNumberStyle:NSNumberFormatterPercentStyle];
[numberFormatter setMaximumFractionDigits:0];
[numberFormatter setMultiplier:@1];

Beginnen wir mit den Grundlagen:

  • 1 = 100%
  • 1/2 = 0,5 = 50%

"Prozent" bedeutet "von 100", so 12% bedeutet 12/100. Sie nicht „mit 100 multiplizieren“ einen Prozentwert zu erhalten, multiplizieren Sie 100% (die durch 1 das gleiche wie die Multiplikation ist, die die gleiche wie nichts zu tun ist).

Basis Nicht jeder Einsatz 10 (obwohl die meisten „modernen“ Sprachen zu tun), und nicht jeder Gebrauch 100 als Nenner. Siehe zum Beispiel perMillSymbol (oder kCFNumberFormatterPerMillSymbol). Es gibt kein „Promille“ Format, aber es ist möglich, dass es automatisch für Gegenden verwendet wird, die Prozentsätze nicht verwenden.

Siehe auch:. PER MILLE SIGN (‰) und PRO TEN THOUSAND SIGN (?)

Ich weiß nicht, dass die Sprache, sondern auf der Grundlage Ihres Codebeispiel und Ausgang, ich würde vermuten, dass der prozentuale Anteil Formatter multipliziert mit 100 und dann auf das% -Zeichen setzt, so dass 1 wird 100%. Was Sie wollen, ist 0,905 zu verwenden, was 90,5% werden soll.

Der „Prozent Stil“ Formatter eine Reihe von 0.905 erwartet, wenn Sie mit 90.5% wollen am Ende. Er interpretiert 90.5 wie aus 1, so ist es 9050% 1.

Pulkit Goyal Antwort ist richtig ... den Multiplikator auf 1 macht '50' Einstellung in '50% '

Swift 4/5

Erstellen NSNumber Erweiterung einfach so

extension NSNumber {
    func getPercentage() -> String {
        let formatter = NumberFormatter()
        formatter.numberStyle = .percent
        formatter.maximumFractionDigits = 0 // You can set what you want
        return formatter.string(from: self)!
    }
}

Get Prozentsatz

let confidence = 0.68300 as NSNumber
print(confidence.getPercentage())

Output

68%

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top