刚学的小程序:
import java.util.Scanner;
   //创建一个box类
class Box1
{   //set方法,输入长,宽,高;
public double[] set(){
 Scanner scanner=new Scanner(System.in);
 System.out.println("请输入箱子的长:");
 double w=scanner.nextDouble();
     System.out.println("请输入箱子的宽:");
 double h=scanner.nextDouble();
 System.out.println("请输入箱子的高:");
 double d=scanner.nextDouble();
 double[] v={h,w,d};
 return v;
}
}
public class Volume
{
public double height;//定义宽;
public double width;//定义长
public double depth;//定义高
//构造方法
public Volume(double[] v){
  double h=v[0];
  double w=v[1];
  double d=v[2];
  this.height=h;
  this.width=w;
  this.depth=d;
  System.out.println("箱子的体积为:"+(height*width*depth));
      System.out.println("构造方法结束:");
}

//主入口方法
public static void main(String[] args){

  Box1 box=new Box1();
  double[] v=box.set();
  new Volume(v);

}
}
运行:
请输入箱子的长:
20.1
请输入箱子的宽:
20.1
请输入箱子的高:
20.1
箱子的体积为:8120.6010000000015
构造方法结束:问:为什么结果后会出现0000000015?

解决方案 »

  1.   

    因为你的长宽高是double类型的变量,所以就会出现这样的,这是他的精度。
      

  2.   

    double 是有精度范围的
    http://hi.baidu.com/630270730/item/5f71365eadc4263295eb0581
    可以看看,了解一下
      

  3.   

    浮点数的储存和计算精度是iso标准,不是java,或是哪门语言的问题
      

  4.   

    我菜鸟,而且这个程序在理解上没问题,就是不明白。有木有大侠教一下?最简单的:这个类怎么定义?  还有这个程序的double[] v={h,w,d};是嘛意思?