我曾经这样做过:
var myValue : Float = myTextField.text.bridgeToObjectiveC().floatValue
但是从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)
请帮帮我或告诉我在哪里可以找到答案!非常感谢!
答案 0 :(得分:27)
将String
转换为NSString
并使用便捷方法:
var str = "3.1"
到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)
答案 1 :(得分:4)
使用:
Int(string:String)
Double(string:String)
Float(string:String)
如果无法解析字符串,则返回一个可选的nil为nil。 例如:
var num = 0.0
if let unwrappedNum = Double("5.0") {
num = unwrappedNum
} else {
print("Error converting to Double")
}
当然,如果您确定,可以强行打开包装:
var foo = Double("5.0")!
如果您在多个地方执行此操作,并且希望在任何地方处理错误处理,那么您可能希望使用转换方法扩展String
:
例如:
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
}
}
}
然后使用它:
let str = "4.9"
var num = str.toDouble()
答案 2 :(得分:1)
public extension String {
public func toFloat() -> Float? {
return Float.init(self)
}
public func toDouble() -> Double? {
return Double.init(self)
}
}
答案 3 :(得分:0)
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)
答案 4 :(得分:0)
let strValue = "14.03"
let result = (strValue as NSString).floatValue