vmas vma mtv ganadores awards swift casting double

swift - ganadores - mtv vma 2018



Swift doble a cadena (11)

Antes de actualizar xCode 6, no tuve problemas para convertir un doble en una cadena de caracteres ahora me da error

var a: Double = 1.5 var b: String = String(a)

Me da el mensaje de error "el doble no es convertible en cadena". ¿Hay alguna otra forma de hacerlo?


Además de la respuesta @Zaph, puede crear una extension:

extension Double { func toString() -> String { return String(format: "%.1f",self) } }

Uso:

var a:Double = 1.5 println("output: /(a.toString())") // output: 1.5


En Swift 4, si desea modificar y usar un doble en la interfaz de usuario como una "cadena" textLabel, puede agregar esto al final de su archivo:

extension Double { func roundToInt() -> Int{ return Int(Darwin.round(self)) }

}

Y úsalo así si quieres tenerlo en una etiqueta de texto:

currentTemp.text = "/(weatherData.tempCelsius.roundToInt())"

O imprímalo como Int:

print(weatherData.tempCelsius.roundToInt())


En swift 3 es simple como se muestra a continuación

let stringDouble = String(describing: double)


En veloz 3:

var a: Double = 1.5 var b: String = String(a)


Esta función le permitirá especificar la cantidad de decimales que se mostrarán:

func doubleToString(number:Double, numberOfDecimalPlaces:Int) -> String { return String(format:"%."+numberOfDecimalPlaces.description+"f", number) }

Uso:

let numberString = doubleToStringDecimalPlacesWithDouble(number: x, numberOfDecimalPlaces: 2)


No está emitiendo, está creando una cadena a partir de un valor con un formato.

let a:Double = 1.5 let b:String = String(format:"%f", a) print("b: /(b)") // b: 1.500000

Con un formato diferente:

let c:String = String(format:"%.1f", a) print("c: /(c)") // c: 1.5


para hacer que cualquier cadena sea rápida, excepto que tal vez los valores enum simplemente hagan lo que haces en el método println ()

por ejemplo:

var stringOfDBL = "/(myDouble)"


Swift 3+: prueba esta línea de código

let num: Double = 1.5 let str = String(format: "%.2f", num)


Swift 4 : Usa el siguiente código

let number = 2.4 let string = String(format: "%.2f", number)


let myDouble = 1.5 let myString = myDouble.description

actualizar Xcode 7.1 • Swift 2.1:

Ahora Double también se puede convertir a String para que pueda usarlo como desee:

let myDouble = 1.5 let myDoubleString = String(myDouble) // "1.5"

Xcode 8.3.2 • Swift 3.1 :

para un número fijo de dígitos de fracción, también puedes extender el doble:

extension FloatingPoint { func fixedFraction(digits: Int) -> String { return String(format: "%./(digits)f", self as! CVarArg) } }

Si necesita más control sobre el formato de su número (dígitos de fracción mínima y máxima y modo de redondeo) puede usar NumberFormatter:

extension Formatter { static let number = NumberFormatter() } extension FloatingPoint { func fractionDigits(min: Int = 2, max: Int = 2, roundingMode: NumberFormatter.RoundingMode = .halfEven) -> String { Formatter.number.minimumFractionDigits = min Formatter.number.maximumFractionDigits = max Formatter.number.roundingMode = roundingMode Formatter.number.numberStyle = .decimal return Formatter.number.string(for: self) ?? "" } } 2.12345.fractionDigits() // "2.12" 2.12345.fractionDigits(min: 3, max: 3, roundingMode: .up) // "2.124"


var b = String(stringInterpolationSegment: a)

Esto funciona para mí Puede intentarlo