我有两个必须相同的值之间的差异......
#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?
两个值都必须相同!
为什么会这样?
答案 0 :(得分:1)
您的宏已损坏 - 更改:
#define degreesToRadian(x) (M_PI * x / 180.0f)
为:
#define degreesToRadian(x) (M_PI * (x) / 180.0f)
NB :这是为什么你不应该使用预处理器来做这种事情的另一个例子。 C和Objective C现在有20年的内联函数 - 你应该使用它们。