-2
存储开方
我计算两个数的欧氏距离,我有这样的公式:在BigDecimal的
import java.lang.*;
import static java.lang.Math.pow;
import static java.lang.Math.sqrt;
public static void main(String[] args)
{
double x2 = 0.32061253;
double x1 = 0.25090585;
double y2 = 0.33407547;
double y1 = 0.30716705;
double distance = sqrt(pow(x2 - x1,2) + pow(y2 - y1,2));
System.out.println(distance);
}
当我试图把它保存在一个双变量(欧几里得距离),我得到0.0当我打印它(可能是因为数字有很多小数)。我尝试使用BigDecimal格式保存它,但它似乎不工作。在这种情况下,我如何正确使用它,因为sqrt
会返回一个双精度?
发布您的代码,您的输入,您的预期输出,您的实际输出。 –
期望的输出是0.30104542160445247,实际输出是0.0。代码与我发布的代码非常相似,x2 x1 y2 y1都是双精度(它们都有10位小数:1.4666362219) – user1823812
该帖子不是有效的Java代码,并且没有输入的输出无助于此。发布代码,输入和输出真的很复杂吗? –