我一直在努力解决这个问题几天,所以经过很多谷歌搜索我决定在这里问。
无论如何,我需要使用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),它将返回我想要的。
所以我希望有人理解我并想帮助我! 提前致谢! (顺便说一句,我很抱歉英语不好)
答案 0 :(得分:5)
在int
次计算中,480/640
为0
。因此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;