ios – 如何安全地将CGFloat放置在底部或内部?

ios – 如何安全地将CGFloat放置在底部或内部?,第1张

概述我经常需要把一个CGFloat或者一个CGFloat放在一个int中,用于计算一个数组索引. 我用floorf(theCGFloat)或ceilf(theCGFloat)永久性地看到的问题是浮点不准确会造成麻烦. 那么如果我的CGFloat是2.0f,而在内部它被表示为1.999999999999f或类似的东西.我做floorf并得到1.0f,这是一个浮动.然而,我必须把这个野兽变成int,这可能 我经常需要把一个CGfloat或者一个CGfloat放在一个int中,用于计算一个数组索引.

我用floorf(theCGfloat)或ceilf(theCGfloat)永久性地看到的问题是浮点不准确会造成麻烦.

那么如果我的CGfloat是2.0f,而在内部它被表示为1.999999999999f或类似的东西.我做floorf并得到1.0f,这是一个浮动.然而,我必须把这个野兽变成int,这可能引发另外一个问题.

有没有一个最佳实践,如何将一个浮动浮动到一个int,使得像2.0这样的东西永远不会意外地被置于1,像2.0这样的东西永远不会被忽略到2?

解决方法 你的问题有几个误解.

what if my CGfloat is 2.0f but internally it is represented as 1.999999999999f

不能发生; 2.0,像所有相当小的整数一样,在浮点中具有精确的表示.如果你的CGfloat是2.0f,那么它真的是2.0.

something like 2.0 would never accIDentally get ceiled to 2

2.0的上限为2;还有什么可能呢?

我认为你真正问的问题是“假设我做了一个计算,产生一个不精确的结果,数学上应该是2.0,但实际上稍微少一些;当我应用于这个值时,我得到1.0而不是2.0 – 我该怎么办?

这实际上是一个相当微妙的问题,没有一个“正确的”答案.你如何计算输入值?你会对结果做些什么?

总结

以上是内存溢出为你收集整理的ios – 如何安全地将CGFloat放置底部或内部?全部内容,希望文章能够帮你解决ios – 如何安全地将CGFloat放置在底部或内部?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1112368.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存