ここで私を助けてくれませんか?文字列をInt、Float、またはDoubleに変換する方法を理解する必要があります。この問題は、UITextFieldから値を取得しようとしていて、このタイプの変換が必要な場合に発生します。
私はこれを以前は次のようにして行いました:
var myValue : Float = myTextField.text.bridgeToObjectiveC().floatValue
しかし、Xcode 6ベータ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)
私を助けてください、または私が答えを見つけることができる場所を教えてください!どうもありがとう!
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)
_
使用する:
Int(string:String)
Double(string:String)
Float(string:String)
文字列の解析に失敗した場合は、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()
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)