2016-11-02 7 views
0

Problem: Ein textField mit einer "Zahl", die ein Dezimaltrennzeichen enthält (in meinem Fall ein Komma), wie kann ich dies in ein Dezimaltrennzeichen ändern, das Xcode versteht (.) und umgekehrt - Anzeige eines Ergebnisses mit dem lokalen Dezimaltrennzeichen?NumberFormatter, NSLocale, Xcode, iOS, Swift 3.0

Ok ... auf halbem Weg gibt ...

let label = Input.text 
    let formatter = NumberFormatter() 
    let maybeNumber = formatter.number(from: label!) 
    if maybeNumber != nil { 
     Output.text = String(describing: maybeNumber!) 
     } 
+0

Haben Sie sich in 'NumberFormatter' der' decimalSeparator' Eigenschaft (.)? Sie können es auf ein (.) Oder (,) setzen, wenn das hilft. Weitere Details oder Codebeispiele können uns helfen herauszufinden, was genau Sie tun möchten. –

+0

http://StackOverflow.com/a/30154625/2303865 –

+0

Ok .... halbwegs ... lass label = Input.text lass formatter = NumberFormatter() lass maybeatNumber = formatter.number (von: label !) wenn vielleichtNummer! = Null { Output.text = String (Beschreibung: vielleichtNummer!) } } –

Antwort

0

Ich bin mir nicht sicher, ob dies ist, was du meinst, aber Sie können das Komma in der TextField.text zu einer Änderung (.) Durch mit diesem Stück Code:

textField.text = textField.text.replacingOccurrences(of: ",", with: ".", options: NSString.CompareOptions.literal, range: nil) 

Diese Kommata in Ihrem Textfield findet und ersetzt sie durch

+0

Danke Michael und Morten; Was ich versuche, ist eine Dezimalzahleingabe mit dem lokalen Dezimaltrennzeichen ("22,4"). Dann ändern Sie dies für weitere Berechnungen auf 22.4. Zeigen Sie dann das Ergebnis erneut in einem lokalen Dezimalformat an. –