4

私はこの問題に数日間苦労していたので、たくさんのグーグル検索の後、代わりにここで質問することにしました。

とにかく、Math.tan()メソッドを使用する必要がありますが、実際には思い通りに機能しません。double 変数を設定し、その上でメソッドをdouble i = opposite/adjacent使用するとMath.tan()、0.0 が返されるだけです。例えば:

double i = 480/640;
System.out.println(Math.tan(i));

しかし、それはまだゼロを返します! Math.tan()メソッドが「ラジアン」値のみを返すことを読みました。しかし、そのためにゼロを返すべきではありませんか? それとも私が間違っていますか?実際の電卓を使用してtan(480/640)を実行すると、必要なものが返されることを私は知っています。

だから、誰かが私を理解して助けてくれることを願っています!前もって感謝します!(ちなみに私は下手な英語で申し訳ありません)

4

4 に答える 4

5

int計算では、480/640です0。したがって、 の結果はiになります0.0

書く必要がありますdouble i = 480.0/640;(少なくとも 1 つの数字は として書かれている必要がありますdouble)。

次のように書くこともできます:double a = 480, b = 640;そして、書くとdouble i = a/b;良い結果が得られます。

于 2013-02-16T08:13:02.023 に答える
3

キャストなしで数学を行うと、Java は最初にリテラルを暗黙的に整数にします - あなたの場合、これは実際に 0 になります。

計算を行う前に値をキャストすると問題ありません。

    double i = 480D/640D;
    System.out.println(i);

また

    double i = (double)480/(double)640;
    System.out.println(i);

また

    double numerator = 480;
    double denominator = 640;
    double i = numerator / denominator;
    System.out.println(i);
于 2013-02-16T08:12:44.973 に答える
1

は整数除算として理解されるため、0 を返しdouble i = 480.0/640.0;ます。480/640

于 2013-02-16T08:07:25.507 に答える
1

で変更

ダブル i = (ダブル) 480/640;

于 2013-02-16T08:12:25.730 に答える