gpt4 book ai didi

ios - 如何安全地将 CGFloat 设置为 int?

转载 作者:IT王子 更新时间:2023-10-29 08:10:18 25 4
gpt4 key购买 nike

我经常需要将 CGFloat floor 或 ceil 到 int 以计算数组索引。

我在 floorf(theCGFloat)ceilf(theCGFloat) 中经常遇到的问题是 float 不准确。

如果我的 CGFloat2.0f 但在内部它表示为 1.999999999999f 或类似的东西怎么办。我执行 floorf 并得到 1.0f,这又是一个 float 。然而,我必须将这个野兽转换为 int,这可能会引入另一个问题。

是否有最佳实践如何将 float 设置为 int 或将其设置为 int,这样 2.0 就不会意外设置为1 和类似 2.0 的东西永远不会意外地限制为 2

最佳答案

快速补充回答

对于那些来这里寻找如何使用 floorceilCGFloat 的人(就像我做了)。

var myCGFloat: CGFloat = 3.001
floor(myCGFloat) // 3.0
ceil(myCGFloat) // 4.0

如果需要 Int,则可以将其转换为一个。

var myCGFloat: CGFloat = 3.001
Int(floor(myCGFloat)) // 3
Int(ceil(myCGFloat)) // 4

更新

不再需要使用 C floorceil 函数了。您可以将 Swift round()rounding rules 一起使用.

var myCGFloat: CGFloat = 3.001
myCGFloat.round(.down) // 3.0
myCGFloat.round(.up) // 4.0

如果您不想修改原始变量,则使用rounded()

注意事项

  • 适用于 32 位和 64 位架构。

另见

关于ios - 如何安全地将 CGFloat 设置为 int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11993981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com