1

これを行うと間違った値を取得しています

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

私が得る答えは-0です。私がグーグル検索をしたとき、これは私が得たものです:

cos(90ラジアン)=-0.448073616。

しかし、私のカシオ計算機が私に与える答えは0であり、私が子供の頃に成長していたときも、cos 90 = 0私の脳に掘り下げられました。

誰が正しいですか、それはObjC、Google、または私のカシオ計算機ですか?

4

2 に答える 2

7

それはすべて、度またはラジアンのどちらで測定しているかによって異なります。

あなたが言ったように、90度(円周率/ 2ラジアン)の正弦は0です。これは定義上ほぼ同じです。

90ラジアンは円周の14.323945倍です。重要なのは残りの部分だけです。円の0.323945、つまり2.035406ラジアンです。その正弦は(すでに見つけたように)-0.448074です。これは定義ではないので、実数は不合理であり、私が引用したのは概算にすぎません。

于 2012-07-02T03:34:12.607 に答える
2

その行を次のように変更します。

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

また

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

そして、あなたははるかに幸せな結果を得るでしょう。

フォーマット文字列の「%.f」はNSLogを混乱させます。

于 2012-07-02T03:24:04.713 に答える