C'est ma façon actuelle de convertir un CGFloat en chaîne dans Swift:
let x:Float = Float(CGFloat)
let y:Int = Int(x)
let z:String = String(y)
Existe-t-il un moyen plus efficace de procéder?
Vous pouvez utiliser interpolation de chaîne :
let x: CGFloat = 0.1
let string = "\(x)" // "0.1"
Ou techniquement, vous pouvez utiliser directement la nature imprimable de CGFloat:
let string = x.description
La propriété description
vient de son implémentation du protocole Printable
qui rend l'interpolation de chaîne possible.
La voie rapide:
let x = CGFloat(12.345)
let s = String(format: "%.3f", Double(x))
La meilleure façon, car il prend soin des paramètres régionaux:
let x = CGFloat(12.345)
let numberFormatter = NSNumberFormatter()
numberFormatter.numberStyle = .DecimalStyle
numberFormatter.minimumFractionDigits = 3
numberFormatter.maximumFractionDigits = 3
let s = numberFormatter.stringFromNumber(x)