Wie richte ich currentRatio
auf zwei Dezimalstellen zusammen?Aufrunden doppelt auf 2 Dezimalstellen
let currentRatio = Double (rxCurrentTextField.text!)!/Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
Wie richte ich currentRatio
auf zwei Dezimalstellen zusammen?Aufrunden doppelt auf 2 Dezimalstellen
let currentRatio = Double (rxCurrentTextField.text!)!/Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"
eine Format-String verwenden, auf zwei Dezimalstellen abzurunden und wandeln die double
auf ein String
:
let currentRatio = Double (rxCurrentTextField.text!)!/Double (txCurrentTextField.text!)!
railRatioLabelField.text! = String(format: "%.2f", currentRatio)
Beispiel:
let myDouble = 3.141
let doubleStr = String(format: "%.2f", myDouble) // "3.14"
Wenn Sie Ihre letzte aufrunden Dezimalstelle, Sie könnten so etwas tun (danke Phoen1xUK):
let myDouble = 3.141
let doubleStr = String(format: "%.2f", ceil(myDouble*100)/100) // "3.15"
Muss 3,15 sein, wenn auf zwei Dezimalstellen gerundet wird. –
Ich dachte, das OP wollte nur auf zwei Dezimalstellen runden, wenn nötig, auf- oder abrunden. Ich habe nur einen Kommentar hinzugefügt, der um eine Klarstellung bittet. – JAL
Hi Jal, Danke, ich habe deine Antwort benutzt, die mit einer kleinen Änderung wie folgt funktioniert: - _ = Double (rxCurrentTextField.text!)!/Double (txCurrentTextField.text!)! railRatioLabelField.text! = String (Format: "% .2f", currentRatio) –
oben Antwort hinzufügen, wenn wir Doppelmehrmal formatiert werden sollen, wir Protokollerweiterung von Doppeln wie unten verwenden:
extension Double {
var dollarString:String {
return String(format: "$%.2f", self)
}
}
let a = 45.666
print(a.dollarString) //will print "$45.67"
Sollte nicht gedruckt werden (a.dollarString)? – glm4
für diesen Zweck verwendet NumberFormatter Betrachten bietet es mehr Flexibilität, wenn Sie drucken mögen das Prozentzeichen des Verhältnisses oder wenn Sie Dinge wie Währung und große Zahlen haben.
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))
Ausgang: 34.58
Der Code für bestimmte Stellen nach Dezimalstellen ist:
var roundedString = String(format: "%.2f", currentRatio)
Hier ist das% .2f die rasche sagt diese Zahl gerundet auf 2 Dezimalstellen zu machen .
Wenn Sie 2 aufrunden wollen Orte dezimal für die Frage zu SWIFT 4 und die richtige Antwort aktualisiert Sie mit 100 dann um ihn aus und teilen sich dann um 100
var x = 1.5657676754
var y = (x*100).rounded()/100
print(y) // 1.57
multiplizieren sollte
nur einzelne Codezeile:
let obj = self.arrayResult[indexPath.row]
let str = String(format: "%.2f", arguments: [Double((obj.mainWeight)!)!])
wollen Sie gleich um 'currentRatio' auf zwei Dezimalstellen oder immer aufrunden? Bsp .: Wollen Sie 3.141 -> 3.14 oder 3.141 -> 3.14? – JAL
Hallo JAL, ich möchte 3.149 als 3.15 anzeigen. 3.141 sollte jedoch 3.14 anzeigen. Danke –
Siehe den ersten Teil meiner Antwort für die richtige Rundung. – JAL