欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据类型转换

程序员文章站 2022-03-18 09:33:49
...

自动类型转换

容量小的数据类型可以自动转换为容量大的数据类型。这里的容量不是指字节数,而是指表述的范围;

int i=3;
double d =i;
float f =i;
double d2=f;

如图所示,黑色的实线表示无数据丢失的自动类型转换,而红色的虚线表示在转换时可能会精度损失。
数据类型转换

例子:
可以将整型常量直接赋给byte、short、char等类型变量,而不需要进行强制类型转换,只要不超出其表述范围即可。

short b1 =12;  //合法
short b2 =12345678; //不合法

数据类型转换

强制类型转换

强制类型转换,又被称为造型,用于显示的转换一个数值的类型。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或者溢出。

public class Demo{
    public static void main(String[] args) {
        double x=3.14;
        int nx=(int)x; //值为3

        char c='a';
        int d=c+1;
        System.out.println(nx);
        System.out.println(d);
        System.out.println("----------");
        System.out.println((char)d);

    }
}

运行结果如图所示:
数据类型转换
当将一种类型强制转换成另一种类型,而又超出了目标类型的表示范围,就会被截断称为一个完全不同的值。

public class Demo{
    public static void main(String[] args) {
        int x=300;
        byte bx=(byte)x;
        System.out.println(bx);//打印强制转换的值
    }
}

运行结果如图所示;
数据类型转换

表达式中的类型提升问题

数据类型转换
在这里会出现报错信息,表示精度缺失。做所有的二元运算符(+-*/%),都会又类型提升的问题。

相关标签: 数据类型转换