Java math arctan在android项目中不起作用

Java math arctan在android项目中不起作用,java,math,Java,Math,在下面的代码中 float i = Float.parseFloat(a); float j = Float.parseFloat(b); double div = (double)j/i; float theta = (float) Math.atan(Math.toRadians(div)); theta获取了错误的值。据我所见,它总是计算Math.tan(我也尝试过,它给了我同样的结果)。因此,即使我写Math.tan或Math.atan,我也会得到相同的结果 有人能帮我吗 具体例子

在下面的代码中

float i = Float.parseFloat(a);
float j = Float.parseFloat(b);
double div = (double)j/i;  
float theta = (float) Math.atan(Math.toRadians(div));
theta
获取了错误的值。据我所见,它总是计算
Math.tan
(我也尝试过,它给了我同样的结果)。因此,即使我写
Math.tan
Math.atan
,我也会得到相同的结果

有人能帮我吗

具体例子:

i,j----> theta I get:

3,4-----> 0.023 while the correct one is arctan(4/3)=53.13 not tan(4/3)=0.023
3,6-----> 0.052 while the correct one is arctan(9/3)=71.56 not tan(9/3)=0.052

看起来你在各地都有奇怪的转变。以下是我认为你想要的:

public class Test {
    public static void main(String[] args) throws Exception {
        double div = (double)4/3;  
        float theta = (float) Math.toDegrees(Math.atan(div));
        System.out.println(theta); // 53.130104
    }
}

假设你想要4/3作为梯度,那根本不是一个角度-所以在上面调用
Math.toRadians
是不合适的。你想在梯度上调用
Math.atan
以获得弧度值,然后在弧度值上调用
Math.toDegrees
以获得度。

你能提供一个具体的例子(i,j,θ)吗?非常奇怪。你能试试数学吗?atan2(j,i)看看你得到了什么?toRadians(4/3)约为0.023,atan(0.023)约为0.023。也许你不想要toRadians步骤?你确定你想要atan(toRadians())而不是更像toDegrees(atan())的东西吗?