Ändern Sie das Negativformat von NSNumberFormatter von (xxx.xx) nach -xxx.xx

8

Ich möchte meinen NSNumberFormatter von der Anzeige negativer Zahlen mit Klammern um sie herum bis hin zur Eingabe des Minuszeichens (oder was auch immer der lokalisierte Standard ist) ändern.

Ich würde annehmen, ich könnte dies mit setNegativeFormat tun:

aber lesen Apples ach so gründliche Dokumente Ich bin links kratzen meinen Kopf:

setNegativeFormat:

Legt das Format fest, mit dem der Empfänger negative Werte anzeigt.

%Vor%

Parameter aFormat Eine Zeichenfolge, die das Format für negative Werte angibt.

Verfügbarkeit Verfügbar in iPhone OS 2.0 und höher.

Siehe auch - Negativformat

In deklariert NSNumberFormatter.h

Was sind meine Optionen für einFormat?!? Komm Doc Writer, würde ein Link hier dich töten?

edit: Für was es wert ist hier ist die Erklärung:

%Vor%

Es ist wichtig für mich, das lokalisierte Währungssymbol & amp; Dezimalstellen, was auch immer sie sein mögen. Daher funktioniert [currencyFormatter setNegativeFormat: @ "- #, ## 0.00"] wahrscheinlich nicht, da die Währung fehlt und 2 Dezimalstellen nicht für alle Währungen angenommen werden können.

    
Meltemi 18.06.2009, 07:04
quelle

4 Antworten

17

Wenn Sie sich den Abschnitt "Format Strings" im Programmierhandbuch zur Datenformatierung für Cocoa :

  

Die Formatzeichenfolge verwendet die Formatmuster aus dem technischen Unicode-Standard # 35 (diese Referenz ist Version tr35-6, Formatierer für Mac OS X 10.4 verwenden Version tr35-4 ).

Bearbeiten:

Wenn Sie eine Format-Zeichenfolge basierend auf Währungen festlegen möchten, können Sie das ¤ -Zeichen verwenden, zum Beispiel:

%Vor%

Dies fügt das Währungssymbol für die aktuelle Lokalisierung anstelle des ¤ -Zeichens hinzu.

Daher wenden Sie das gleiche Konzept auf die Zeichenfolge mit negativem Format an:

%Vor%

Damit wird auch das Währungssymbol anstelle von ¤ für die aktuelle Lokalisierung angewendet.

    
Alex Rozanski 18.06.2009, 07:27
quelle
1

OK, die Antwort lautet:

%Vor%

der Schlüssel ist das was? Zeichen "¤". Keine Ahnung, wie es heißt? jemand? aber es stellt die lokalisierte Währung in diesen Formatzeichenfolgen dar ...

    
Meltemi 18.06.2009 08:05
quelle
1

In diesem Fall sucht es nach einem Format NSString. Suchen Sie hier nach Format-String-Details .

Wenn das Negativ von 12,345.67 als -12,345.67 angezeigt werden soll, dann ist der korrekte NSString-Wert vermutlich @"-#,##0.00"

Ich habe auch den folgenden Satz in dem oben verlinkten Dokument notiert:

  

Wenn Sie kein Format für angeben   negative Werte, das Format angegeben   für positive Werte wird verwendet, vorangestellt   durch ein Minuszeichen (-).

BEARBEITEN:
Update für 10.4 und danach: Hier ist eine PDF, die das Verhalten in 10.4 und nach beschreibt
Und, wie aus diesem Dokument verlinkt, sind hier die Daten zum erforderlichen Format für 10.4 und nach .
Aus diesem Dokument scheint die richtige Zeichenfolge möglicherweise: @"-#,##0.##"

    
Demi 18.06.2009 07:18
quelle
1

Alle angegebenen Antworten gehen davon aus, dass die Währung zwei Dezimalstellen hat und Kommata als Tausendertrennzeichen verwendet. Offensichtlich gibt es eine Reihe von Währungen, die nicht diesem Standard Ссылка entsprechen, also verwende ich die folgende Technik

%Vor%     
Flexicoder 10.07.2014 16:06
quelle