float d1 = 423432423f;
float d2 = d1+1;
if(d1==d2){
System.out.println("d1==d2");
}else{
System.out.println("d1!=d2");
}
输出结果是d1==d2
因为float型在JVM底层是以科学计数法的方式储存,d1=4.2343242E7 其中小数点后E之前最多保留7位
d2在JVM中同样也是4.2343242E7,因为最后一位丢失了
若需要更多精度需要用double类型