数据类型的转换

一、常量的数据类型

  整型默认为int

  若为长整型,则要在末尾加L;例如25L

  浮点型默认为double

  若为单精度浮点型float,则要在后面加F;例如2.36F

二、变量数据类型之间的转换

  1、自动转换

    当数据类型不一样时,会发生数据类型转换

    规则:数据范围从小到大

    特点:无需代码处理,自动完成

byte:       1个字节,数据范围是-128~127之间。

short:      2个字节,数据范围是-32768~32767之间。

int:          4个字节,数据范围是-231次方————+231-1。

long:       8个字节,数据范围为-263———263-1。

float:       4个字节,数据范围在-1.4x10-45——+3.4x1038

double:   8个字节,数据范围在-4.9x10-324——+1.8x10308

boolean: 1/8个字节只有true和false两个取值。

char:       字母数字占1个字节,中文占两个字节;存储Unicode码,用单引号赋值。

    例:float  num1 = 32L;//由上表可知float的数据范围比long大,可以完成自动类型转换

      byte  num2 = 2L;//由上表可知float的数据范围大比long小,不能完成自动类型转换

      int     num3 = 4;

      byte  num4 = 25;//特例:对于byte和short,只要“=”右边的常量没有超过左边数据类型的范围;可以转为对应的数据类型,不会报错

      short  num5 = 34;

      num4 = num3;   //因为num3属于变量,所以不能完成自动类型转换

      num5 = num2 + num5;//在计算过程中,byte,short,char会自动提升为int类型,无需代码完成,所有等号右边是int,左边为short,会报错

    计算过程中转换顺序:

      byte,short,char——>int——>long——>float——>double

  2、强制类型转换

    对于不能完成自动类型转换的数据要进行强制类型转换

    强制类型转换的格式为:数据类型 变量名 = (数据类型)被转数据值;

    例:改正上面红色部分

      byte  num2 = (byte)2L;

      num4 =(byte) num3;

      num5 =(short)(num2 + num5);

    注意事项:

      浮点转成整数,直接取消小数点,可能造成数据损失精度。

      int 强制转成 short 砍掉2个字节,可能造成数据丢失。

      浮点数转换为整数,小数部分会丢失。

 

posted @ 2019-07-30 13:33  七月流星丶  阅读(389)  评论(0)    收藏  举报