Convertir CGFloat a String en Swift
string to double swift 4 (2)
La forma rápida:
let x = CGFloat(12.345)
let s = String(format: "%.3f", Double(x))
La mejor manera, porque cuida los locales:
let x = CGFloat(12.345)
let numberFormatter = NSNumberFormatter()
numberFormatter.numberStyle = .DecimalStyle
numberFormatter.minimumFractionDigits = 3
numberFormatter.maximumFractionDigits = 3
let s = numberFormatter.stringFromNumber(x)
Esta es mi forma actual de convertir un CGFloat a String en Swift:
let x:Float = Float(CGFloat)
let y:Int = Int(x)
let z:String = String(y)
¿Hay una manera más eficiente de hacer esto?
Puedes usar interpolación de cadenas :
let x: CGFloat = 0.1
let string = "/(x)" // "0.1"
O técnicamente, puede utilizar la naturaleza imprimible de CGFloat directamente:
let string = x.description
La propiedad de description
proviene de la implementación del protocolo de Printable
, que es lo que hace posible la interpolación de cadenas.