Swift从String中提取Int,Float或Double值(类型转换)

365*_*ses 9 string floating-point double int swift

你能帮帮我吗?我需要了解如何将String转换为Int,Float或Double!当我试图从UITextField获取值并需要这种类型的转换时,会发生此问题!

我过去常常这样做:

var myValue : Float = myTextField.text.bridgeToObjectiveC().floatValue
Run Code Online (Sandbox Code Playgroud)

但是从Xcode 6 beta 6开始它似乎不再起作用了!

我也试过这样:

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)
Run Code Online (Sandbox Code Playgroud)

请帮帮我或告诉我在哪里可以找到答案!非常感谢!

Max*_*tin 27

转换StringNSString使用便捷方法:

var str = "3.1"
Run Code Online (Sandbox Code Playgroud)

到Int

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

漂浮

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

加倍

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


参考

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)
Run Code Online (Sandbox Code Playgroud)

  • 您可以将字符串转换为`NSString`而不是使用`NSString`构造函数:`var floatValue =(str as NSString).floatValue`. (2认同)