2012-07-02 52 views
1

我得到一个错误的值,当我做这个cos 90的实际值是多少?

NSLog(@"cos 90 is %.f", cos(90.0)); 

我得到的答案是-0。当我做了谷歌搜索,这是我得到:

cos(90弧度)= -0.448073616。

然而,我的卡西欧计算器给我的答案是0,而且当我小时候成长时,cos 90 = 0钻进了我的大脑。

谁说得对,是ObjC,Google还是我的卡西欧计算器?

+6

当cos 90 = 0时,它是90度,而不是90弧度。您的计算器必须处于度数模式。 – BoltClock

+4

我敢说这是疯狂的话题? – mydogisbox

+1

这是Objective C,因为他试图通过“'NSLog'”来做到这一点,但是如果他使用“'printf'”也会出现同样的问题。 –

回答

7

这一切都取决于您是以度数还是弧度测量。

正如你所说,90度(π/ 2弧度)的余弦为0。

90弧度是围绕一圈的14.323945倍。唯一重要的部分是剩余部分:0.323945的圆或2.035406弧度。这个余弦是(如你已经找到的)-0.448074。这个不是一个定义,所以实数是非理性的,我所引用的仅仅是近似值。

2

更改该行:

NSLog(@"cos 90 is %0.5f", cos(90.0)); 

NSLog(@"cos 90 is %f", cos(90.0)); 

而且你将有更快乐的结果。

格式字符串中的“%.f”令NSLog感到困惑。

+0

度数与弧度的关系如何?你是否仍然认为将参数90.0传递给该函数会得到期望的结果? – duffymo