我用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放置在底部或内部?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)