2017-04-19 2 views
0

Hier ist mein Code:NumberFormatter() nicht zwingen Nachkommastelle

extension NSDecimalNumber { 
func getFormattedDecimalString() -> String { 
    let numberFormatter   = NumberFormatter() 
    numberFormatter.minimumFractionDigits = 2 
    numberFormatter.maximumFractionDigits = 2 
    numberFormatter.numberStyle = NumberFormatter.Style.decimal 
    if let decimalString = numberFormatter.string(from: self) { 
     return decimalString 
    } else { 
     return "" 
    } 
} 
} 

Wenn ich die Nummer 4.11 haben, es zeigt, 4.11. Wenn ich die Nummer 4.1 habe, zeigt es 4.1. Wenn ich die Nummer 4 habe, wird 4. angezeigt. Ich möchte, dass 4.11, 4.10 und 4.00 angezeigt werden. Ich dachte, das ist, was minimumFractionDigits war. Ich habe auch versucht, die Zeile numberFormatter.alwaysShowsDecimalSeparator = true hinzuzufügen, und das tut nichts.

+0

Kann nicht reproduzieren. Können Sie ein [mcve] bereitstellen, das das Problem demonstriert? –

+0

In numberFormatter.string (von: self) was selbst anzeigt, weil Ihr Problem nicht reproduzieren kann. es funktioniert gut für mich – AkBombe

+0

@AkBombe Es ist eine Erweiterung von NSDecimalNumber (Ich habe meinen Beitrag bearbeitet). Ich habe es in eine normale Funktion gestellt und es hat funktioniert, aber das funktioniert nicht. Ich bekomme die NSDecimalNumber aus den Kerndaten. – Questioner

Antwort

0

Wurde tatsächlich durch nicht miteinander verbundenen Fehler verursacht, die ich gemacht hatte: Ich hatte zwei ViewControllers und ich war die falsche Bearbeitung. Der mit dem falschen Code war derjenige, der an die Ansicht angehängt war.

Verwandte Themen