double distanceA = fabsf(target - current);
目标是CGFloat 当前是CGFloat
我的其余计算依赖于双倍。也许还有一些更明智的方法可以做到这一点吗?
答案 0 :(得分:6)
除非您需要距离的双倍精度,否则请更改浮动距离。 CGFloat被定义为iPhone上的浮点数,fabsf()获取浮点值并返回浮点值。处理双精度值时,iPhone的标准浮动速度要慢得多。
事实上,对你的距离变量使用双精度是没有意义的,因为你已经通过fabsf()运行计算而失去了精度,而fabsf()只返回一个浮点数。
答案 1 :(得分:0)
现在不在Xcode附近,但请尝试:
double distanceA = (double) fabsf(target - current);