Begrenzt sowohl die Anzahl als auch die Gesamtanzahl der Ziffern, wenn ein Float für die Anzeige formatiert wird

8

Ich muss einen Gleitkommawert in einem Bereich mit begrenzter Breite am effizientesten drucken. Ich verwende ein NSNumberFormatter , und ich setze zwei Zahlen nach dem Dezimalpunkt als Standard, so dass, wenn ich eine Zahl wie 234.25 habe, es wie folgt gedruckt wird: 234.25 . Aber wenn ich 1234.25 habe, möchte ich, dass es gedruckt wird als: 1234.3 , und 11234.25 sollte gedruckt werden 11234 .

Ich brauche maximal zwei Ziffern hinter dem Punkt und maximal fünf Ziffern insgesamt, wenn ich Ziffern nach dem Punkt habe, aber es sollte auch mehr als fünf Ziffern drucken, wenn der ganzzahlige Teil mehr hat.

Ich sehe keine Möglichkeit, die Gesamtzahl der Ziffern in NSNumberFormatter zu begrenzen. Bedeutet das, dass ich meine eigene Funktion schreiben sollte, um Zahlen auf diese Weise zu formatieren? Wenn ja, was ist der richtige Weg, um die Anzahl der Ziffern in den ganzzahligen und gebrochenen Teilen einer Zahl zu erhalten? Ich würde auch lieber mit CGFLoat arbeiten als mit NSNumber , um zusätzliche Typumwandlungen zu vermeiden.

    
BartoNaz 26.04.2012, 16:05
quelle

4 Antworten

0

So habe ich das in meinem Code implementiert. Ich weiß nicht, wie effizient es ist, ich hoffe nicht schlecht.

Also erstelle ich einen globalen NSNumberFormatter

%Vor%

und initialisiere es irgendwo:

%Vor%

Dann formatiere ich die Nummer mit der folgenden Funktion:

%Vor%     
BartoNaz 28.04.2012, 17:07
quelle
12

Sie suchen nach einer Kombination aus "höchstwertigen Ziffern" und "maximalen Bruchzahlen" sowie einem bestimmten Rundungsverhalten. NSNumberFormatter entspricht der Aufgabe:

%Vor%

Ergebnis:

  

2012-04-26 16: 32: 04.481 SignificantDigits [11565: 707] 234.25
  2012-04-26 16: 32: 04.482 SignificantDigits [11565: 707] 1234.3
  2012-04-26 16: 32: 04.483 SignificantDigits [11565: 707] 11235

    
Josh Caswell 26.04.2012 16:29
quelle
1

Code:

%Vor%

Testen:

%Vor%

Ausgabe:

%Vor%     
Dr.Kameleon 26.04.2012 16:28
quelle
0

Ist das ein Fehler bei der Verwendung von maximumFractionDigits und maximumSignificantDigits zusammen auf NSNumberForamtter auf iOS 8?

%Vor%

Es funktioniert gut, wenn ich nur maximumFractionDigits

verwende %Vor%

NSNumberFormatter-Fehler maximumFractionDigits und maximumSignificantDigits

    
PokerIncome.com 25.12.2014 05:12
quelle