java - 为什么 Math.sqrt 返回 0 而不是 vector 的长度?

标签 java math.sqrt

public static double[] creeVec(double x, double y, double z){

    //cree et retourne un tableau
    double[] tab = new double[3];
    tab[0]=x;
    tab[1]=y;
    tab[2]=z;
    return tab;
}

public static double longueur(double[] tab){

    //calcule la longueur
    tab = new double[3];
    double carre = ((tab[0]*tab[0])+(tab[1]*tab[1])+(tab[2]*tab[2]));
    return Math.sqrt(carre);
}

然后,当我调用他们获取 Math.sqrt() 的结果时,我得到 0

    double[] v1 = Vec3DTab.creeVec(10, 20, 30);
    double[] v2 = Vec3DTab.creeVec(4, 5, 6);

    //affiche la longueur de v1
    double LongueurV1 = Vec3DTab.longueur(v1);
    System.out.println(LongueurV1);

最佳答案

longueur(double[] tab) 方法中的代码 tab = new double[3]; 创建了一个新的 double 数组对象并初始化为默认值 0。

因此它返回 0。

请删除此行,您将获得适当的值。

关于java - 为什么 Math.sqrt 返回 0 而不是 vector 的长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35076669/

相关文章:

java - 为什么这个主要检查器可以工作,但如果我试图提高它的效率却不起作用

java - 仅输出整数的平方根

java - 使用 ant 创建 Android 项目的源代码分发

java - Freemarker 中的继承/实例检查

java - 遗传算法每次都会提供不同的输出吗?

c - 编译包含<math.h>的c代码时需要使用额外的选项

java - 我如何调用线程本身?

java - 谁在 Spring Security 中创建了 JSESSIONID cookie?

python - 值错误 : Math domain error (for a 2nd grade equation function)

go - go中的平方负数