将String转换为CGFloat

Gos*_*rov 2 swift

如何将String转换为CGFloat?

我试过了 :

var string     = "132"
var stringChange     = CGFloat((string as NSString).floatValue)
Run Code Online (Sandbox Code Playgroud)

但在Xcode 7中它不起作用.

Kam*_*xom 5

像这样:

let cgFloat : CGFloat? = Double("1.49").map{ CGFloat($0) }
Run Code Online (Sandbox Code Playgroud)

cgFloatnil如果字符串无法解析

你也可以使用没有的版本map,它完全相同:

let cgFloat : CGFloat?
if let double = Double("1.49") {
    cgFloat = CGFloat(double)
} else {
    cgFloat = nil
}
Run Code Online (Sandbox Code Playgroud)

例:

let toCGFloat = { Double($0).map{ CGFloat($0) } }

toCGFloat("123")      // 123
toCGFloat("123.3")    // 123.3
toCGFloat("123.8326947239875")    // 123.8326947239875
Run Code Online (Sandbox Code Playgroud)

您可以更改DoubleFloat,看一看值怎么弄不准确的,这是你应该使用的原因Double.