四则运算的时候会自动提升精度,最终计算出来的结果的精度以高精度为准,这种现象叫做精度的自动提升。
最大值加一变成了最小值,最小值减一变成了最大值,这种现象叫做数据溢出,在开发中一般不会出现,只是作为面试的一个概念提出来。如果要让数据不溢出应该提升精度(也叫做扩大数据类型)。
int类型变量精度提升
public class Hello
{
public static void main(String [] args)
{
int num =10;
System.out.println((double)num);
}
}
变量精度提升:变量前面加上小括号,小括号中的内容是要提升的精度类型,比如说(float)num。
高精度的值赋值为低精度的变量
无法将一个高精度的数值赋值给低精度的变量,如果要赋值需要先将高精度的数据转换成低精度之后才赋值,这种转换叫做强制类型转换。
强制类型转换
public class Hello
{
public static void main(String [] args)
{
double num1=10.8;
int num2=(int)num1*10;
System.out.println(num2);
}
}
最后结果输出不是108而是100,强制类型转换将高精度的数据转换为低精度数据是会出现精度丢失,上面的demo中0.8被丢失。