2012-07-02 51 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