Double in Textfeld von Komma auf Punkt konvertieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund der Corona-Krise: Die Veröffentlichung von Stellenangeboten und -gesuchen ist bis 31.12.2020 kostenfrei. Das beinhaltet auch Angebote und Gesuche von und für Freischaffende und Selbstständige.

  • Double in Textfeld von Komma auf Punkt konvertieren

    Hallo!
    Wie in einem anderen Thread schon angedeutet, habe ich ein Formular mit Eingabefelder für Zahlen, die für eine Berechnung verwendet werden sollen. Wie gritsch schon anmerkte funzt das Ganze aber nicht, wenn statt Double-Werten mit Punkt-Trennung die Werte mit Komma-Trennung eingegeben werden. Nach einigem Lesen habe ich mir einen Code gebastelt (mit Hilfe vom Web), der den String aus einem Textfeld nimmt und diesen in einen Datentyp "NSNumber" umwandelt. Wenn ich diesen zur Berechnung vewenden will, kommt allerdings eine Fehlermeldung: "Binary operator '*' cannot be Applied to operands of type NSNumber? and Double".
    Hier ist der Code

    Quellcode

    1. var numberValue:String = "120,3456"
    2. var formatter = NumberFormatter()
    3. formatter.locale = NSLocale.current
    4. formatter.minimumFractionDigits = 2
    5. formatter.maximumFractionDigits = 2
    6. var number:NSNumber? = formatter.number(from: numberValue)
    7. var ergebnis = number * 2.2

    Wenn ich es richtig verstehe, dann hat die Variable number nicht den Datentyp Double. Wenn ich versuche, die Variable number nochmal explizit in ein Double zu konvertieren, scheint das auch nicht zu funktionieren.

    Quellcode

    1. let testzahl = Double(number!)
    2. var erbebnis1 = testzahl * 2.2
    Das Ganze kommt mir auch recht umständlich vor, nur um einen String in einen Double mit Punkt zu konvertieren. Bin ich auf dem Holzweg?
    Viele Grüße Tommi!
  • Hallo Tommi,

    TommiWe schrieb:


    Wenn ich diesen zur Berechnung vewenden will, kommt allerdings eine Fehlermeldung: "Binary operator '*' cannot be Applied to operands of type NSNumber? and Double".
    Gewöhne Dir am besten direkt am Anfang an, im Zweifelsfall einmal in die Dokumentationen der von Dir verwendeten Klassen zu schauen. Dafür sind die nämlich da. Wenn Du einmal durchliest, was NSNumber ist und was man damit so anstellen kann, sollte Dir ein Licht aufgehen...

    Nix für ungut, Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.