我知道找到距离的公式是什么,但我不明白为什么我的程序不起作用?这是我的代码:
public class Test {
public static void main(String[] args) {
double res = dist(0.0, 0.0, 4.0, 4.0);
System.out.println(res);
}
private static double dist(double x1, double y1, double x2, double y2) {
return Math.sqrt((x2-x1)*(x2-x1)-(y2-y1)*(y2-y1));
}
}
而不是得到4.0因此我得到0.0?!有人能解释我为什么吗?
答案 0 :(得分:2)
你的dist函数有一个错误。距离应该是平方和的平方根,而不是差值。将其更改为以下内容。
return Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
你的结果也应该是4 * sqrt(2)而不是4.0。
答案 1 :(得分:0)
距离约为5.656854
,而不是4.尝试Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1))
。公式为a^2+b^2=c^2
(平方+ b平方= c平方),因此您需要使用+
,而不是-
。这一改变将使其发挥作用。否则你将负数传递给Math.sqrt()
。