6.6-数据类型自动转换与强制性转换

2018-02-21  本文已影响0人  钟小胖子

当不同的数据类型进行计算的时候,会自动将结果变成最大值的数据类型,转换顺序如下

byte-short-int-long-float-double

                     I

                (char)

                 (char实际存储为unicode编码,实际是整数类型-即32位)

/*

* Created by 智捷课堂

* 本书网站:www.51work6.com

* 智捷课堂在线课堂:www.zhijieketang.com

* 智捷课堂微信公共号:zhijieketang

* 邮箱:eorient@sina.com

* Java读者服务QQ群:547370999

* 【配套电子书】网址:

*      图灵社区:

*      http://www.ituring.com.cn/book/2480

*      百度阅读:

*      https://yuedu.baidu.com/ebook/7c1499987e192279168884868762caaedd33ba00

*/

public class HelloWorld {

public static void main(String[] args) {

////////// 自动类型转换//////////////

// 声明整数变量

byte byteNum = 16;

short shortNum = 16;

int intNum = 16;

long longNum = 16L;

// byte类型转换为int类型

intNum = byteNum;

// 声明char变量

char charNum = '花';

// char类型转换为int类型

intNum = charNum;

// 声明浮点变量

// long类型转换为float类型

float floatNum = longNum;

// float类型转换为double类型

double doubleNum = floatNum;

// 表达式计算后类型是double

double result = floatNum * intNum + doubleNum / shortNum;

////////// 强制类型转换//////////////

//int型变量

int i = 10;

//把int变量i强制转换为byte

byte b = (byte) i;

int i2 = (int)i;

int i3 = (int)b;

//精度与强制类型转换

float c1 = i / 3;

System.out.println(c1);

//把int变量i强制转换为float

float c2 = (float)i / 3;

System.out.println(c2);

//强制类型转换导致精度丢失

    long yourNumber = 6666666666L;

    System.out.println(yourNumber);

    int myNuber = (int)yourNumber;

    System.out.println(myNuber);

}

}

上一篇下一篇

猜你喜欢

热点阅读