swift println nsformatter

Cómo usar println en Swift para dar formato al número



nsformatter (4)

Cuando cierre una sesión flotante en Objective-C, puede hacer lo siguiente para limitar su salida a solo 2 decimales:

float avgTemp = 66.844322156 NSLog (@"average temp. = %.2f", avgTemp);

¿Pero cómo haces esto en Swift? ¿Y cómo escapar de otros personajes en println en Swift?

Aquí hay una declaración de println Swift regular:

println ("Avg. temp = /(avgTemp)")

Entonces, ¿cómo limitar los decimales?

Además, ¿cómo escapar de las comillas dobles en println ?


Println () está en desuso.

var avgTemp = 66.844322156 print("average temp. = (round(avgTemp*100)/100)") // average temp. = 66.84

//or

print(NSString(format:"average temp. = %.2f", avgTemp))) // average temp. = 66.84 avgTemp = 66.846322156

print(String(format:"average temp. = %.2f", avgTemp)) // average temp. = 66.85


Aquí está la solución más corta que encontré hasta ahora:

let avgTemp = 66.844322156 println(NSString(format:"%.2f", avgTemp))

Es como la versión rápida de stringWithFormat de stringWithFormat


Si necesita imprimir números de punto flotante a menudo con cierta precisión, puede extender los métodos Flotante y Doble con métodos de conveniencia. Por ejemplo, para 2 cifras significativas de precisión:

// get Float or Double with 2 significant figure precision var numberFormatter = NSNumberFormatter() extension Float { var sf2:String { get { numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle numberFormatter.maximumSignificantDigits = 2 return numberFormatter.stringFromNumber(self)! } } } extension Double { var sf2:String { get { numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle numberFormatter.maximumSignificantDigits = 2 return numberFormatter.stringFromNumber(self)! } } }

Entonces cuando necesites imprimir cosas:

let x = 5.23325 print("The value of x is /(x.sf2)")


Todo lo relacionado con el formato de un número como cadena se puede ajustar utilizando un NSNumberFormatter:

let nf = NSNumberFormatter() nf.numberStyle = NSNumberFormatterStyle.DecimalStyle nf.maximumFractionDigits = 2 println(nf.stringFromNumber(0.33333)) // prints 0.33

Puedes escapar de las comillas con una barra invertida

println("/"God is dead/" -Nietzsche")