Come arrotondare lo currentRatio
con due cifre decimali?Arrotondare il doppio al 2 decimale
let currentRatio = Double (rxCurrentTextField.text!)!/Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
Come arrotondare lo currentRatio
con due cifre decimali?Arrotondare il doppio al 2 decimale
let currentRatio = Double (rxCurrentTextField.text!)!/Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
Utilizzare una stringa di formato per arrotondare fino a due cifre decimali e convertire il double
ad un String
:
let currentRatio = Double (rxCurrentTextField.text!)!/Double (txCurrentTextField.text!)!
railRatioLabelField.text! = String(format: "%.2f", currentRatio)
Esempio:
let myDouble = 3.141
let doubleStr = String(format: "%.2f", myDouble) // "3.14"
Se si vuole arrotondare il vostro ultimo posizione decimale, si potrebbe fare qualcosa di simile (grazie Phoen1xUK):
let myDouble = 3.141
let doubleStr = String(format: "%.2f", ceil(myDouble*100)/100) // "3.15"
Deve essere 3.15 se l'arrotondamento fino a due cifre decimali. –
Ho pensato che l'OP volesse solo arrotondare a due cifre decimali, arrotondando per eccesso o per difetto, se necessario. Ho appena aggiunto un commento per chiedere chiarimenti. – JAL
Ciao Jal, grazie, ho usato la tua risposta che ha funzionato con una leggera modifica come segue: - _ = Double (rxCurrentTextField.text!)!/Double (txCurrentTextField.text!)! railRatioLabelField.text! = Stringa (formato: "% .2f", currentRatio) –
Aggiungendo alla risposta di cui sopra, se vogliamo doppio formato più volte, siamo in grado di utilizzare l'estensione del protocollo di Double come di seguito:
extension Double {
var dollarString:String {
return String(format: "$%.2f", self)
}
}
let a = 45.666
print(a.dollarString) //will print "$45.67"
Non dovrebbe essere stampato (a.dollarString)? – glm4
considerare l'utilizzo di NumberFormatter per questo scopo, essa fornisce una maggiore flessibilità, se si desidera stampare il segno percentuale del rapporto o se hai cose come valuta e numeri grandi.
let amount = 10.000001
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.maximumFractionDigits = 2
let formattedAmount = formatter.string(from: amount as NSNumber)!
print(formattedAmount) // 10
String(format: "%.2f", Double(round(1000*34.578)/1000))
uscita: 34.58
Il codice per le cifre specifiche dopo decimali è:
var roundedString = String(format: "%.2f", currentRatio)
Qui l'% .2f dice la rapida per rendere questo numero arrotondato a 2 cifre decimali .
Aggiornato a SWIFT 4 e la risposta corretta per la domanda
Se si desidera arrotondare fino a 2 cifre decimali si dovrebbe moltiplicare per 100, allora tondo fuori e poi dividere per 100
var x = 1.5657676754
var y = (x*100).rounded()/100
print(y) // 1.57
linea Just singolo di codice:
let obj = self.arrayResult[indexPath.row]
let str = String(format: "%.2f", arguments: [Double((obj.mainWeight)!)!])
vuoi per proprio dietro 'currentRatio' a due cifre decimali, o sempre Round up? Es: vuoi 3.141 -> 3.14 o 3.141 -> 3.14? – JAL
Ciao JAL, voglio 3.149 da visualizzare come 3.15. Tuttavia 3.141 dovrebbe visualizzare 3.14. Grazie –
Vedere la prima parte della mia risposta per l'arrotondamento corretto. – JAL