1

変数を でラップし、 という新しい変数に設定することtri2で、変数を degressに変換しようとしています。しかし、変数をキャストしてアプリケーションを実行すると、logcat に次のように表示されます: http://pastebin.com/HKDSAuQKtoDegree()triDegree

アプリケーションは正常に動作し、度数に変換するまで計算していました。ここで私の実装の何が問題なのか誰にもわかりますか?

public void onClick(View v) {
    // TODO Auto-generated method stub
    try {
        String getoffsetlength = data.offsetLength.getText().toString(); 
        String getoffsetdepth = data.offsetDepth.getText().toString(); 
        String getductdepth = data.ductDepth.getText().toString(); 

        double tri1,tri2;
        double marking1,marking2;
        double triDegree;

        double off1 = Double.parseDouble(getoffsetlength);//length
        double off2 = Double.parseDouble(getoffsetdepth);//depth
        double off3 = Double.parseDouble(getductdepth);//duct depth

        marking1 = Math.sqrt(Math.pow(off1,2) + Math.pow(off2,2));
        tri1 = Math.atan(off2 / off1);
        tri2 = (180 - tri1) / 2;
        triDegree = Math.toDegrees(tri2);
        marking2 = off3 / Math.tan(triDegree);

        Intent myIntent = new Intent(MainActivity.this, CalcResult.class);
        myIntent.putExtra("number1", marking1);
        myIntent.putExtra("number2", marking2);
        startActivity(myIntent);
        //make a toast 
        Toast.makeText( getBaseContext(), "Calculating!", Toast.LENGTH_SHORT
             ).show(); 
    }
    catch (NumberFormatException e) {
        // TODO: handle exception
        System.out.println("Must enter a numeric value!");
    }
}
4

1 に答える 1

2

ここでエラーが発生します:

tri2 = (180 - tri1) / 2;

この時点でtri1、変換前に度として扱います。「直線」の 180° 角度の値から角度を減算する場合は、ラジアンでの直線角度の尺度である 180 の代わりに π を使用します。

tri2 = (Math.PI - tri1) / 2;

この呼び出しも正しくありません

triDegree = Math.toDegrees(tri2);
marking2 = off3 / Math.tan(triDegree);

triDegreeは度で表されるためtan、ラジアンで表される値が期待されます。

于 2013-10-10T13:37:58.447 に答える