Zahlentypen aus Zeichenketten
In Swift 2.0 ist es möglich, Zahlendatentypen aus Zeichenketten zu initialisieren, und man erhält von einem String einen Optional-Int oder Optional-Double.
In Swift 2.0 ist es möglich, Zahlendatentypen aus Zeichenketten zu initialisieren, und man erhält von einem String einen Optional-Int oder Optional-Double.
var
intValue:Int? = Int("1000") var doubleValue:Double? = Double("30.30") |
Der Typ muss Optional sein, denn die Umwandlung kann fehlschlagen, zum Beispiel, wenn Buchstaben im Text vorhanden sind. Das Ergebnis der Konvertierung ist dann nicht 0 sondern nil.
Ob und wie die Systemeinstellungen bezüglich der Verwendung von Punkt und Komma bei einer Umwandlung von String in Double berücksichtig werden, ist nicht zu erkennen. Auf einem System, das nach eigenen Aussagen die Lokale de_DE verwendet, war trotzdem ein Punkt und kein Komma erforderlich, um den korrekten Zahlenwert zu bekommen. Im Playground der Xcode-Entwicklungsumgebung kann die aktuelle Einstellung wie folgt ausgegeben werden:
Ob und wie die Systemeinstellungen bezüglich der Verwendung von Punkt und Komma bei einer Umwandlung von String in Double berücksichtig werden, ist nicht zu erkennen. Auf einem System, das nach eigenen Aussagen die Lokale de_DE verwendet, war trotzdem ein Punkt und kein Komma erforderlich, um den korrekten Zahlenwert zu bekommen. Im Playground der Xcode-Entwicklungsumgebung kann die aktuelle Einstellung wie folgt ausgegeben werden:
print(NSLocale.currentLocale().localeIdentifier) |
Sicherer ist die Umwandlung mit Hilfe der Klasse NSNumberFormatter:
var
numberValue:String = "120,3456" // Einen NSNumberFormatter erzeugen var formatter = NSNumberFormatter() formatter.locale = NSLocale(localeIdentifier: "de_DE") var number:Double? = formatter.numberFromString(numberValue)?.doubleValue |