iOS - 结果之间的差异

时间:2012-10-16 23:24:44

标签: iphone ios ipad

我有两个必须相同的值之间的差异......

#define degreesToRadian(x) (M_PI * x / 180.0f)

... 
CGFloat angle = -3.0f;
CGFloat beta = degreesToRadian(90.0f - fabsf(angle));

CGFloat delta = (90.0f - fabsf(angle)) * M_PI /180.0f;

此时我得到beta = 282.72和delta = 1.51?

两个值都必须相同!

为什么会这样?

1 个答案:

答案 0 :(得分:1)

您的宏已损坏 - 更改:

#define degreesToRadian(x) (M_PI * x / 180.0f)

为:

#define degreesToRadian(x) (M_PI * (x) / 180.0f)

NB :这是为什么你不应该使用预处理器来做这种事情的另一个例子。 C和Objective C现在有20年的内联函数 - 你应该使用它们。