float string swift cgfloat

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.