Java数据类型转换

数据类型转换

Java 的数据类型在定义的时候就已经确定了,所以不能够随意的转换 java 的数据类型,但是 java 允许用户有限度的做类型转换处理。数据类型转换方式可以分为 “自动类型转换” 和 “强制类型转换” 两种。

数据类型的自动转换

在 java 中如果已经定义好了一个变量,在使用过程中如果需要另一种数据类型表示时,java 会在下面的条件成立的时候会自动做数据类型转换。

  1. 转换前和转换后的数据类型是兼容的。
  2. 转后后的数据类型表示的范围比转换前的数据类型范围要大。

数据类型自动转换代码示例:

package com.haicoder.net.thread.typechange; public class AutomaticChange { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)"); int x = 30; float y = 22.19f; System.out.println("x/y= " + x / y); //直接将结果转换为 float 类型 System.out.println("10 / 3.5 = " + (10 / 3.5)); System.out.println("10 / 3 = " + (10 / 3)); } }

运行效果如下:

09 数据自动类型转换.png

因为 float 的数据范围比 int 的数据范围大,所以用 float 的数据类型来接受结果。

数据类型强制转换

强制类型转换也叫显示类型转换。前提是两个数据类型要兼容的。他可以分为扩大转换和缩小转换。如果是缩小转换,那么会将数据的精度丢失。

强制类型转换代码如下:

package com.haicoder.net.thread.typechange; public class CompulsoryChange { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)"); float f = 30.3f; int x = (int)f; System.out.println("x = " + x); System.out.println("10 / 3 = " + (float)(10 / 3)); } }

运行效果如下:

10 数据类型强制转换.png

强制类型转换需要在数据前将数据类型给出进行强制转换,从大范围到小范围的数据转换的时候,会将数据精确度丢失。