web-dev-qa-db-ja.com

Swift文字列からInt、Float、またはDouble値を抽出します(型変換)

ここで私を助けてくれませんか?文字列を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)

私を助けてください、または私が答えを見つけることができる場所を教えてください!どうもありがとう!

9
365Cases

StringNSStringに変換し、便利なメソッドを使用します。

_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)
_
27
Maxim Shoustin

使用する:

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()
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