Ответ 1
Try:
var numberOfBottles = totalVolume / volumeEachBottles
numberOfBottles.rounded(.up)
или
numberOfBottles.rounded(.down)
Я пытаюсь округлить двойное число до целого числа,
var numberOfBottles = totalVolume / volumeEachBottles
например numberOfBottles = 275.0 / 250.0
что дало бы мне 1.1
, мне нужно округлить до 2
Try:
var numberOfBottles = totalVolume / volumeEachBottles
numberOfBottles.rounded(.up)
или
numberOfBottles.rounded(.down)
Существует встроенная глобальная функция, называемая ceil
, которая выполняет именно это:
var numberOfBottles = ceil(totalVolume/volumeEachBottles)
Это возвращает 2
, как Double
.
ceil
фактически объявлен в math.h
и документирован здесь, в справочных страницах OS X. Это почти наверняка более эффективно, чем любой другой подход.
Даже если вам нужен Int
в качестве конечного результата, я бы начал с вычисления ceil
следующим образом, а затем с помощью конструктора Int
в результате вычисления ceil
.
import Foundation
var numberOfBottles = 275.0 / 250.0
var rounded = ceil(numberOfBottles)
func round(value: Double) -> Int {
var d : Double = value - Double(Int(value))
if d > 0.0 {
return Int(value) + 1
} else {
return Int(value)
}
}