Ich versuche, ein Doppel bis auf eine ganze Zahl abzurunden,Swift Aufrunden Doppel
var numberOfBottles = totalVolume/volumeEachBottles
zum Beispiel numberOfBottles = 275.0/250.0
, die mich 1.1
geben würde, muss ich es 2
aufrunden
Ich versuche, ein Doppel bis auf eine ganze Zahl abzurunden,Swift Aufrunden Doppel
var numberOfBottles = totalVolume/volumeEachBottles
zum Beispiel numberOfBottles = 275.0/250.0
, die mich 1.1
geben würde, muss ich es 2
aufrunden
func round(value: Double) -> Int {
var d : Double = value - Double(Int(value))
if d > 0.0 {
return Int(value) + 1
} else {
return Int(value)
}
}
Dies wandelt das Ergebnis in ein Int um. Es ist unklar, ob dies erforderlich ist. – nhgrif
Was bedeutet "ganz" in Ihrem Wörterbuch? – NiVeR
Was ist, wenn wir den Wert in eine Methode übergeben, die ein 'Double' erwartet oder auf eine' Double' Eigenschaft setzt. In ein 'Int' zu konvertieren, nur um wieder in ein' Double' zu konvertieren, ist kein sehr guter Pfad. – nhgrif
Es gibt eine integrierte globale Funktion namens ceil
, die genau das tut:
var numberOfBottles = ceil(totalVolume/volumeEachBottles)
Dies gibt 2
als Double
zurück.
ceil
tatsächlich in math.h
erklärt und dokumentiert here in the OS X man pages. Es ist fast sicher effizienter als jeder andere Ansatz.
Auch wenn Sie ein Int
als Endergebnis brauchen, würde ich durch die Berechnung ceil
wie diese starten, und dann mit dem Int
Konstruktor auf dem Ergebnis der Berechnung ceil
.
Es ist nicht integriert, Sie müssen "Foundation importieren", um es zu verwenden. – BallpointBen
Versuchen:
var numberOfBottles = totalVolume/volumeEachBottles
numberOfBottles.rounded(.up)
oder
numberOfBottles.rounded(.down)
import Foundation
var numberOfBottles = 275.0/250.0
var rounded = ceil(numberOfBottles)
Wollen Sie die Int 2 oder die Doppel 2.0? – BallpointBen