S'il vous plaît pourriez-vous m'aider ici? J'ai besoin de comprendre comment convertir une chaîne en un Int, un Float ou un Double! Ce problème survient lorsque j'essaie d'obtenir la valeur d'un UITextField et que ce type de conversion est nécessaire!
Je faisais ça comme ça:
var myValue : Float = myTextField.text.bridgeToObjectiveC().floatValue
mais depuis Xcode 6 beta 6, il ne semble plus fonctionner!
J'ai aussi essayé comme ça:
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)
Aidez-moi s'il vous plaît ou dites-moi où je peux trouver la réponse! Merci beaucoup!
Convertissez String
en NSString
et utilisez des méthodes pratiques:
var str = "3.1"
To Int
var intValue : Int = NSString(string: str).integerValue
// 3
Flotter
var floatValue : Float = NSString(string: str).floatValue
// 3.09999990463257
Doubler
var doubleValue : Double = NSString(string: str).doubleValue
// 3.1
Référence
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)
Utilisation:
Int(string:String)
Double(string:String)
Float(string:String)
Lesquels renvoient un optionnel qui est nil s'il ne parvient pas à analyser la chaîne . Par exemple:
var num = 0.0
if let unwrappedNum = Double("5.0") {
num = unwrappedNum
} else {
print("Error converting to Double")
}
Bien sûr, vous pouvez forcer le déballage si vous êtes sûr:
var foo = Double("5.0")!
Si vous effectuez cette opération à plusieurs endroits et que vous souhaitez que la gestion des erreurs soit traitée de la même manière, vous pouvez étendre la variable String
à l'aide de méthodes de conversion:
Par exemple:
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
}
}
}
et ensuite l'utiliser:
let str = "4.9"
var num = str.toDouble()
public extension String {
public func toFloat() -> Float? {
return Float.init(self)
}
public func toDouble() -> Double? {
return Double.init(self)
}
}
let strValue = "14.03"
let result = (strValue as NSString).floatValue
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)