如图:
结果:
代码:
public class Main {
public static void main(String[] args) {
//float占用4个字节,有效位数7位,多出的四舍五入
System.out.println("float最大位数:"+0.9999999f);
System.out.println("float超过7位后:"+0.99999999f);//true 这里有八个9,第八个9四舍五入得1
//double占用8个字节,有效位数16位,多出的四舍五入
System.out.println("double最大位数:"+0.9999999999999999);//有十六个9
System.out.println("double超过16位后:"+0.99999999999999999); //这里有十七个9,第十七个9四舍五入得1
//比较
System.out.println("float转为double时有精度损失(超过7位小数):"+(double)0.9999999f);
System.out.println("float转为double时有精度损失(7位小数内):"+(double)0.1f);
//比较
System.out.println("double转为float时有精度损失(超过7位小数):"+(float)0.99999999);
System.out.println("double转为float时正常(7位小数内):"+(float)0.1);
}
}