请问java中,Double类型和double有什么不同?能否转换?

我遇到的问题:
定义一个double类型的变量 double sumPrice = 0.0;
之后重数据库中查出来一个对象rec,该对象有一个属性amount,用rec.getAmount()出来一个为Double类型的变量amount,在迭代过程中,求amount累加合并赋值给sumPrice:在for循环中,sumPrice+=amount;
系统提示:double和Double不能相加,为什么?怎么转换?

你好Double类型是double的包装类,在JDK1.5以后,二者可以直接相互赋值,称为自动拆箱和自动装箱。看你的提示,我推测你的jdk版本在1.5以前。
如果是这样,可以用Double中的方法,将包装类转为基本数据类型,如:
double amount = rec.getAmount().doubleValue() ;
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-05
double是基本类型数据,Double是基本类型double的包装类,是一个对象。所以两个不能直接相加。需要用amount.doubleValue()返回的值就变成了基本类型的double,就可以相加了。
第2个回答  2011-09-05
你用的是JDK1.5以下的版本。不支持自动装箱拆箱
Double 是double的包装类。 也就是对象化了。
在1.4中可以这样使用
Double d =new Double(dou)可将double基本数据类型装箱为Double包装类
double dou =d.doubleValue()可将Double的包装类拆箱为基本数据类型
第3个回答  2011-09-05
Double是对象 double是基本类型
就相当于Integer和int
两者可以转化
Double.....点一下就出现具体的转化方法了,具体名字忘记了
相似回答