with two round places float decimals swift double

two - swift string 2 decimal places



Redondeo el doble a 2 decimales. (8)

Agregando a la respuesta anterior, si queremos formatear el Doble varias veces, podemos usar la extensión del protocolo de Doble como a continuación:

extension Double { var dollarString:String { return String(format: "$%.2f", self) } } let a = 45.666 print(a.dollarString) //will print "$45.67"

¿Cómo redondeo currentRatio a dos decimales?

let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)! railRatioLabelField.text! = "/(currentRatio)"


Considere el uso de NumberFormatter para este propósito, proporciona más flexibilidad si desea imprimir el signo de porcentaje de la proporción o si tiene cosas como moneda y números grandes.

let amount = 10.000001 let formatter = NumberFormatter() formatter.numberStyle = .decimal formatter.maximumFractionDigits = 2 let formattedAmount = formatter.string(from: amount as NSNumber)! print(formattedAmount) // 10


El código para dígitos específicos después de decimales es:

var roundedString = String(format: "%.2f", currentRatio)

Aquí el% .2f le dice al swift que haga que este número se redondee a 2 posiciones decimales.


Solo una línea de código:

let obj = self.arrayResult[indexPath.row] let str = String(format: "%.2f", arguments: [Double((obj.mainWeight)!)!])


Use una cadena de formato para redondear hasta dos decimales y convertir el double en una String :

let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)! railRatioLabelField.text! = String(format: "%.2f", currentRatio)

Ejemplo:

let myDouble = 3.141 let doubleStr = String(format: "%.2f", myDouble) // "3.14"

Si quieres redondear tu último decimal, podrías hacer algo como esto (gracias Phoen1xUK):

let myDouble = 3.141 let doubleStr = String(format: "%.2f", ceil(myDouble*100)/100) // "3.15"


si le das 234.545332233 te dará 234.54

let textData = Double(myTextField.text!)! let text = String(format: "%.2f", arguments: [textData]) mylabel.text = text


Actualizado a SWIFT 4 y la respuesta adecuada para la pregunta

Si desea redondear hasta 2 decimales, debe multiplicar por 100, luego redondear y luego dividir por 100

var x = 1.5657676754 var y = (x*100).rounded()/100 print(y) // 1.57


String(format: "%.2f", Double(round(1000*34.578)/1000))

Salida: 34.58