出于某种原因,当我尝试编译代码时,出现了精度错误。精度误差来自我尝试计算周长的第二种方法的返回。我做错了什么?

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/

10-10 20:05