J'essaie d'arrondir un double jusqu'à un nombre entier,
var numberOfBottles = totalVolume / volumeEachBottles
par exemple numberOfBottles = 275.0 / 250.0
.__ qui me donnerait 1.1
, il me faut arrondir à 2
Essayer:
var numberOfBottles = totalVolume / volumeEachBottles
numberOfBottles.rounded(.up)
ou
numberOfBottles.rounded(.down)
Il existe une fonction globale intégrée appelée ceil
qui fait exactement ceci:
var numberOfBottles = ceil(totalVolume/volumeEachBottles)
Ceci retourne 2
, en tant que Double
.
ceil
est en fait déclaré dans math.h
et documenté ici, dans les pages de manuel OS X . C'est presque certainement plus efficace que toute autre approche.
Même si vous avez besoin de Int
comme résultat final, je commencerais par calculer ceil
comme ceci, puis par le constructeur Int
pour le résultat du calcul ceil
.
import Foundation
var numberOfBottles = 275.0 / 250.0
var rounded = ceil(numberOfBottles)
Si vous souhaitez l'arrondir à un nombre entier et l'utiliser dans l'interface utilisateur, cela peut être utile. Ajoutez simplement ceci comme dernière chose dans votre fichier ou dans votre propre fichier:
extension Double {
func roundToInt() -> Int{
return Int(Darwin.round(self))
}
}
Et utilisez-le comme ceci si vous aimez l'avoir dans un label de texte:
currentTemp.text = "\(weatherData.tempCelsius.roundToInt())"
Ou imprimez-le comme un Int:
print(weatherData.tempCelsius.roundToInt())