web-dev-qa-db-fra.com

Arrondissez le double jusqu'à 2 décimales

Comment puis-je arrondir currentRatio à deux décimales?

let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
35
Del Hinds

Utilisez une chaîne de format pour arrondir à deux décimales et convertir la double en une String:

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

Exemple:

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

Si vous voulez arrondir votre dernière décimale, vous pouvez faire quelque chose comme ça (merci Phoen1xUK):

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

Mis à jour pour Swift 4 et la réponse appropriée à la question

Si vous voulez arrondir à 2 décimales, vous devez multiplier par 100 puis arrondir et diviser par 100

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

En ajoutant à la réponse ci-dessus si nous voulons formater Double plusieurs fois, nous pouvons utiliser l'extension de protocole de Double comme ci-dessous:

extension Double {
    var dollarString:String {
        return String(format: "$%.2f", self)
    }
}

let a = 45.666

print(a.dollarString) //will print "$45.67"
9
Ankit garg

Envisagez d'utiliser NumberFormatter à cette fin. Cela vous donnera plus de flexibilité si vous souhaitez imprimer le signe de pourcentage du ratio ou si vous avez des éléments tels que la devise et des nombres élevés.

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

Le code pour les chiffres spécifiques après les décimales est:

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

Ici, le% .2f demande au Swift d’arrondir ce nombre à 2 décimales.

4
Ramazan Karami

(Swift 4.2 Xcode 10) Simple à utiliser Extension: -

extension Double {
    func roundTo(places:Int) -> Double {
        let divisor = pow(10.0, Double(places))
        return (self * divisor).rounded() / divisor
    }
}

Utilisation:-

if let distanceDb = Double(strDistance) {
   cell.lblDistance.text = "\(distanceDb.roundTo(places:2)) km"
}
1
Mehul
String(format: "%.2f", Double(round(1000*34.578)/1000))

Sortie: 34.58

1
Shobhit C

Juste une seule ligne de code:

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

si vous lui donnez 234.545332233, il vous donnera 234.54

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