Java中的基本三角函数

时间:2013-02-16 08:04:32

标签: java trigonometry

我一直在努力解决这个问题几天,所以经过很多谷歌搜索我决定在这里问。

无论如何,我需要使用Math.tan()方法,但它并不像我想的那样正常工作。如果我设置了一个双变量:double i = opposite/adjacent,然后使用Math.tan()方法,它只返回0.0!例如:

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

但它仍然会返回零!我读到Math.tan()方法只返回“Radian”值。但是因为它不应该归零?还是我错了?我知道,如果我使用真正的计算器并做棕褐色(480/640),它将返回我想要的。

所以我希望有人理解我并想帮助我! 提前致谢! (顺便说一句,我很抱歉英语不好)

4 个答案:

答案 0 :(得分:5)

int次计算中,480/6400。因此i的结果将为0.0

您需要写double i = 480.0/640;(至少有一个数字必须写成double)。

您也可以写:double a = 480, b = 640;然后如果您写double i = a/b;,您将获得良好的结果。

答案 1 :(得分: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);

答案 2 :(得分:1)

double i = 480.0/640.0; 480/640被理解为整数除法,因此给出0

答案 3 :(得分:1)

改变

double i =(double)480/640;