数据类型转换

一、自动数据类型转换

需满足两个条件:a. 转换前的数据类型与转换后的类型兼容;b. 转换后的数据类型的表示范围比转换前的类型大

1、int类型和float类型之间的转换

public class DataDemo08 {
    public static void main(String[] args) {
        int x = 30;
        float y = 22.19f;
        System.out.println("x/y=" + (x/y));
        System.out.println("10/3.5=" + (10/3.5));
        System.out.println("10/3=" + (10/3));
    }
}

运行结果:

x/y=1.3519603
10/3.5=2.857142857142857
10/3=3

注:10/3因为其默认的类型是int型,所以所有的数据都会以整型的形式出现,那么结果就是3,小数点会省略掉

 

2、任何类型的数据都向String转型

String从其定义上发现首字母大写,所以此为一个类,属于引用数据类型,但是此类属于系统的类。

(1)String像普通变量一样直接通过赋值的方式进行声明。字符串使用双引号括起来。两个字符串使用”+“号进行连接。

(2)任何字符数据类型碰到String类型的变量或常量之后都向String类型转换。

范例:定义字符串变量

public class demon {
    public static void main(String[] args) {
        String str = "ZhangSan";
        int x = 18;
        str = str + x;
        System.out.println("str = " + str);
    }
}

运行结果:

str = ZhangSan18

范例:字符串常量操作的问题

public class demon {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        String str = "1 + 2 = ";
        System.out.println(str + a + b);
    }
}

程序运行结果:

1 + 2 = 12

程序原本要计算a+b的值,由于碰上了字符串常量,所有的数据类型都会转变为字符串常量,此时的”+“表示的是字符串连接的含义,如果要得到想要的结果,则需修改:

System.out.println(str + (a + b));

public class demon {
    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        String str = "1 + 2 = ";
        System.out.println(str + (a + b));
    }
}

程序运行结果:

1 + 2 = 3

加上括号后,表示输出之前先计算两个数字相加的结果。

 

二、数据类型的强制转换

当两个整数进行运算时,其运算结果也会是整数。举例来说,当做整数除法8/3的运算,其结果为整数2,并不是实际的2.33333......,因此在Java中若是想要得到计算的结果是浮点数时,就必须将数据类型做强制性的转换,转换语法如下:

(欲转换的数据类型)变量名称;

public class DataDemo11 {
    public static void main(String[] args) {
        float f = 30.3f;   //浮点型
        int x = (int)f;   //强制类型转换
        System.out.println("x=" + x);
        System.out.println("10/3=" +((float)10/3));  //执行强制转换
    }
}

执行结果:

x=30
10/3=3.3333333

 

posted @ 2021-03-13 22:58  coco9821  阅读(88)  评论(0编辑  收藏  举报