1

これに対するいくつかの回答を見てきましたが、まだ自分に合った回答が見つかりません。これを試すと:

return Math.cos(270.* Math.PI/180); 

私は得る

-1.8369701987210297E-16

その間: -

Math.cos(Math.toRadians(270.) // gives:-1.8369701987210297E-16

私はこれが0になることを期待していました。

4

3 に答える 3

5

数値-1.8369701987210297E-16は、ゼロに非常に近い数値の科学的表現です。これは次の数値に相当します。

-0.000000000000000018369701987210297

浮動小数点演算は正確ではありません。小さな表現エラーが予想されます。特に、 pi のような無理数を浮動小数点数として正確に表現することはできません。

于 2012-12-23T14:11:13.970 に答える
1

Math.PIは近似値なので、おおよその値が得られますzero

epsilon近似値の誤差範囲を使用してみてください1E-16。したがって、cos の結果がイプシロンより劣る場合、それは null であることを意味します。

独自の変更された関数を開発することもできますcos

于 2012-12-23T14:12:46.433 に答える
0

浮動小数点数の場合の完全ではない精度のさらに別の例。それを変換すると、完全ではない 0 値になります。ただし、ゼロにかなり近いです。

大きな値とは関係ありません。浮動小数点数の場合は、常にわずかな違いが予想されます。

于 2012-12-23T14:11:55.843 に答える