Swift Rounding up Double

时间:2015-07-04 21:56:25

标签: swift double rounding

我正在尝试将一个双倍增加到一个整数,

var numberOfBottles = totalVolume / volumeEachBottles

例如numberOfBottles = 275.0 / 250.0 这会给我1.1,我需要它来围绕2

4 个答案:

答案 0 :(得分:37)

尝试:

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

numberOfBottles.rounded(.down)

答案 1 :(得分:12)

有一个名为ceil的内置全局函数,它正是这样做的:

var numberOfBottles = ceil(totalVolume/volumeEachBottles)

这会将2作为Double返回。

enter image description here

ceil实际上已在math.h中声明并记录在here in the OS X man pages。它几乎肯定比任何其他方法更有效。

即使您需要Int作为最终结果,我也会先计算ceil这样的结果,然后在Int的结果上使用ceil构造函数计算。

答案 2 :(得分:1)

import Foundation

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

答案 3 :(得分:1)

如果您正在寻找将其四舍五入并在UI中使用它,那么这可能很有用。只需将其添加为文件或自己文件中的最后一项:

extension Double {
func roundToInt() -> Int{
    return Int(Darwin.round(self))
}

}

如果你喜欢在文本标签中使用它,请使用它:

currentTemp.text = "\(weatherData.tempCelsius.roundToInt())"

或者将其打印为Int:

print(weatherData.tempCelsius.roundToInt())