0

我在两个必须相同的值之间存在这种差异......

#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 ?

两个值必须相同!

这是为什么?

4

1 回答 1

1

您的宏已损坏 - 更改:

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

到:

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

注意:这是为什么你不应该使用预处理器来处理这类事情的另一个例子。C 和 Objective C 已经有 20 年的内联函数了——你应该利用它们。

于 2012-10-16T23:27:34.817 回答