日期:2014-05-20  浏览次数:20711 次

刚学java,求教这是为什么?
刚学的小程序:
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?

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