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