Double是对象,double是基本类型。
你好Double类型是double的包装类,在JDK1.5以后,二者可以直接相互赋值,称为自动拆箱和自动装箱。看你的提示,我推测你的jdk版本在1.5以前。
如果是这样,可以用Double中的方法,将包装类转为基本数据类型,如:
double amount = rec.getAmount().doubleValue() 。
Java基本类型:
Java基本类型共有八种,基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。
数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。
实际上,JAVA中还存在另外一种基本类型void,它也有对应的包装类java.lang.Void,不过我们无法直接对它们进行操作。
写一个转换的方法,给了两种方式,代码如下:
public static void main(String[] args) {
System.out.println(doubleTrans1(3.0));
}
//方法一
public static String doubleTrans1(double num){
if(num % 1.0 == 0){
return String.valueOf((long)num);
}
return String.valueOf(num);
}
//方法二
public static String doubleTrans2(double num){
if(Math.round(num)-num==0){
return String.valueOf((long)num);
}
return String.valueOf(num);
}