Swift 相当于 CGFloat 的 ceilf

标签 swift cgfloat ceil

我正在尝试做这样的事情

var myCGFloat: CGFloat = 3.001
ceilf(myCGFloat)

但是 ceilf 只接受 Float 值。在四处搜索时,有很多关于进行这种转换或那种转换的不同答案,具体取决于它是 32 位还是 64 位架构。

事实证明解决方案相当简单,但我花了很长时间才找到它。所以我写这个问答对作为其他人的捷径。

最佳答案

现在执行此操作的 Swift 方法是使用 rounded(.up)(如果您想就地更改变量,则使用 round(.up))。 Behind the scenes it is using ceil , 它可以将 CGFloat 作为参数并且是 architecture independent .

let myCGFloat: CGFloat = 3.001
let y = myCGFloat.rounded(.up) // 4.0

这相当于

var myCGFloat: CGFloat = 3.001
let y = ceil(myCGFloat) // 4.0

不再需要使用 ceilf

另见 my fuller使用各种舍入规则在 CGFloat 上回答。

关于Swift 相当于 CGFloat 的 ceilf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34286184/

相关文章:

ios - heightForRowAtIndexPath 间歇性崩溃

PHP计算除法的整数

ios - 无法在没有错误的情况下在自定义 UITableView 上添加 UIButton

ios - 二元运算符 + 不能应用于 CGfloat int 类型的操作数

swift - 无法使用 alpha 属性调用非函数类型 'CGFloat' 的值

delphi - 为什么 Math.Ceil 在参数计算变量值时会给出意想不到的结果?

c++ - 什么时候static_casting ceil的结果会妥协?

ios - Swift:如何从 firebase 检索数据?

ios - 如何通过 SnapKit 更新高度约束并更新单元格高度?

swift - ARSceneView 中使用哪个图像作为引用?