出于某种原因,当我尝试编译代码时,出现了精度错误。精度误差来自我尝试计算周长的第二种方法的返回。我做错了什么?
public class Methods2
{
public static final double PI = 3.14;
public static double calcCirc(double x)
{
return PI*x;
}
public static int calcCirc(int x)
{
return (2*(double) x)*PI;
}
public static void main(String[]args)
{
System.out.println(calcCirc(10.2));
System.out.println(calcCirc(4));
}
}
最佳答案
calcCirc()
的两个版本都应返回双精度值。
另外,请注意-考虑使用不同的方法名称,因为它们接受的输入不仅在类型上而且在语义上也不同。
例如。 calcCircFromRadius(double radius)
,calcCircFromDiameter(double diameter)
。此处实际上没有理由将int
作为输入类型,因为Java会自动为您将int
强制转换为double
。
关于java - 转换不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19061663/