it-swarm.com.de

Swift extrahiert einen Int-, Float- oder Double-Wert aus einer Zeichenfolge

Könnten Sie mir hier helfen? Ich muss verstehen, wie man einen String in einen Int, Float oder Double konvertiert! Dieses Problem tritt auf, wenn ich versuche, den Wert von einem UITextField abzurufen und diese Art der Konvertierung benötigen!

Ich habe es so gemacht:

var myValue : Float = myTextField.text.bridgeToObjectiveC().floatValue

aber seit Xcode 6 beta 6 scheint es nicht mehr zu funktionieren! 

Ich habe auch so ausprobiert:

var str = "3.14"

// Conversion from StringValue to an Int
var intValue : Int = str.toInt()!

// Other converstion from StringValue to an Int
var intOtherValue : Int = Int(str)

// Converstion from StringValue to a Float
var floatValue : Float = str.bridgeToObjectiveC().floatValue

// Converstion from StringValue to a Double
var doubleValue : Double = Double(str)

Bitte helfen Sie mir oder sagen Sie mir, wo ich die Antwort finden kann! Danke vielmals!

9
365Cases

Konvertieren Sie String in NSString und verwenden Sie bequeme Methoden:

var str = "3.1"

nach Int

var intValue : Int = NSString(string: str).integerValue // 3

Schweben

var floatValue : Float = NSString(string: str).floatValue // 3.09999990463257

Verdoppeln

var doubleValue : Double = NSString(string: str).doubleValue // 3.1


Referenz

var doubleValue: Double { get }
var floatValue: Float { get }
var intValue: Int32 { get }
@availability(OSX, introduced=10.5)
var integerValue: Int { get }
@availability(OSX, introduced=10.5)
var longLongValue: Int64 { get }
@availability(OSX, introduced=10.5)
27
Maxim Shoustin

Benutzen:

Int(string:String)
Double(string:String)
Float(string:String)

Gibt eine optionale Angabe zurück, die null ist, wenn die Zeichenfolge nicht analysiert werden kann. __ Beispiel:

var num = 0.0
if let unwrappedNum = Double("5.0") {
    num = unwrappedNum
} else {
    print("Error converting to Double")
}

Natürlich können Sie das Auspacken erzwingen, wenn Sie sich sicher sind:

var foo = Double("5.0")!

String erweitern

Wenn Sie dies an mehreren Stellen tun und möchten, dass die Fehlerbehandlung überall gleich behandelt wird, möchten Sie möglicherweise String mit Konvertierungsmethoden erweitern:

Zum Beispiel:

extension String {
    func toDouble() -> Double {
        if let unwrappedNum = Double(self) {
            return unwrappedNum
        } else {
            // Handle a bad number
            print("Error converting \"" + self + "\" to Double")
            return 0.0
        }
    }
}

und dann um es zu benutzen:

let str = "4.9"
var num = str.toDouble()
4
floatingpoint
public extension String {
    public func toFloat() -> Float? {
        return Float.init(self)
    }

    public func toDouble() -> Double? {
        return Double.init(self)
    }
}
1
Tinvy
let strValue = "14.03"

let result = (strValue as NSString).floatValue
0
Ranjan
var holdTextFieldToStringValue = myTextField.text

//convert from string to Int

var holdIntValue = holdTextFieldToStringValue.toInt()!

//convert from string to Double

var holdDoubleValue = Double((holdTextFieldToStringValue as NSString).doubleValue)
0
bawasuru