2016-09-28 7 views
-2

Javaプログラムを使用して異なる角度のsinusを検索しようとしています。角度が270または90の場合、結果は1になりますが、角度が180または360の場合結果は0ではない、なぜ?Javaを使用して180または360のsinusが0でない理由

Scanner keyboard = new Scanner(System.in); 
double deg=0 ;  
System.out.print("angle in deg :"); 
deg= keyboard.nextDouble();   //take the value from user// 
double rad = deg*(Math.PI/180);  // convert the value to rad// 
System.out.print("sinus of the angle : " + Math.sin(rad)); //show the result// 

結果:link

+0

あなたの問題は何ですか? –

+0

あなたはどのような結果を得ていますか? – Bathsheba

+0

これが結果です。 mayas

答えて

-1

数値を10進数で表示する方法を確認するには、this質問を参照してください。ただし、指数関数形式では表示されません。

+0

私の新しい結果はゼロです非常にありがとう – mayas

-2

使用

x = Math.toRadians(x); 

それはラジアンにあなたの角度を変換し、私はラジアンに程度を変換する必要があることを知って、これはコードです。

次にあなたが

System.out.print("sinus of the angle : " + Math.sin(x)); 
+1

標準ライブラリで提供されているメソッドを使用することは一般的には良い考えですが、これは質問とは関係ありません。本質的には 'double'精度を中心に回転します)、OPの実装を' Math.toRadians'で置き換えると、出力には全く影響しません。 – Mureinik

+0

'x = Math.toRadians(x);を使うことをお勧めしますが、良いアドバイスですが、おそらく問題は解決しません。 – Bathsheba

+0

私はこのメソッドを使用したくありません – mayas

3

を印刷することができ、私はあなたが、結果として-2.4492935982947064E-16のようなものを得たと仮定していますか?これは、doubleタイプの固有の不正確なものです。期待通りに0ではありませんが、実際にはそれに近いです。

+0

[リンク](http://i.stack.imgur.com/Q02SR.png)これは結果です – mayas

+0

同じこと。ゼロではないが、それに非常に近い。 –

+0

はいそれはゼロに近い – mayas

関連する問題