我试图做这样的事情
var myCGFloat: CGFloat = 3.001 ceilf(myCGFloat)
但ceilf
只Float
取值.在搜索时,有很多关于进行此转换的不同答案,或者取决于它是32位还是64位架构.
事实证明解决方案相当容易,但我花了太长时间才找到它.所以我写这个Q&A对作为其他人的捷径.
现在使用Swift的方法是使用rounded(.up)
(或者round(.up)
如果你想改变变量).它正在使用的幕后ceil
,它可以CGFloat
作为一个参数,并与架构无关.
let myCGFloat: CGFloat = 3.001 let y = myCGFloat.rounded(.up) // 4.0
这相当于
var myCGFloat: CGFloat = 3.001 let y = ceil(myCGFloat) // 4.0
ceilf
不再需要任何使用.
另请参阅我关于CGFloat
各种舍入规则的更全面的答案.