解决思路
float 转换为 String,再将 String 转换为 double
以下为测试:
1.直接转换
public static void main(String[] agrs){
double a=2.8d;
float a1=2.8f;
double a2=a1;
System.out.println("a1==a2:"+(a1==a2));
System.out.println("a==a2:"+(a==a2));
System.out.println(a1);
System.out.println(a2);
}
结果:
a1==a2:true
a==a2:false
2.8
2.799999952316284
2.按照解决思路转换
public static void main(String[] agrs){
double a=2.8d;
float a1=2.8f;
double a2=Double.valueOf(String.valueOf(a1));
System.out.println("a1==a2:"+(a1==a2));//java自动将a1转为double
System.out.println("a==a2:"+(a==a2));
System.out.println(a1);
System.out.println(a2);
}
结果:
a1==a2:false
a==a2:true
2.8
2.8
总结:业务上遇到此类转换要记得使用解决思路