web-dev-qa-db-fra.com

Swift Arrondissant Double

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

16
Luis Gustavo Origa

Essayer:

var numberOfBottles = totalVolume / volumeEachBottles
numberOfBottles.rounded(.up) 

ou

numberOfBottles.rounded(.down)
33
João Nunes

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.

enter image description here

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.

12
nhgrif
import Foundation

var numberOfBottles = 275.0 / 250.0
var rounded = ceil(numberOfBottles)
1
DouglasHeitner

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())