显式类型转换

来源:互联网 发布:workbanch 导出mysql 编辑:程序博客网 时间:2024/05/22 08:08

1.大精度转换成小精度:可能会有精度缺失,因为大精度的数据类型随随便便可以包含小精度的数据类型。当大精度的数据值大于小精度的数值域,那么就会发生精度缺失和溢出。

 

2.所以想要大转小就必须进行强制转换。

  (运行查看)

public class Hello

{

publicstatic void main(String[] args)

{

doublenum1 = 3.1415926 ;

//float num2 = num1 ;Hello.java:6:错误:可能损失精度

//正确强制类型转换方法:(double--->float

floatnum2 = (float)num1 ;

System.out.println(num2);//输出结果是:3.1415925; 问题:3.1415925< 3.1415926 

intnum3 = (int)num1 ;

System.out.println(num3);//输出结果是:3; 问题:3 < 3.1415926

 

/*

           注意

*/

// 1.当赋予的值小于byte的取值范围时:

byte num4 = 125 ; //输出完成 (耗时0) -正常终止

//当赋给byte类型(num4)的值,在byte的取值范围中时,编译器就不会报错,而是在最底层偷偷进行一次类型转换(这个过程是感觉不出来的,会让人误认为int——>byte不用强制类型转换)。

// 2.当赋予的值大于byte的取值范围时:

byte num5 = 128; //Hello.java:16:错误:可能损失精度

//因为 128大于了 byte的取值范围,所以编辑器会进行报错。

}

}


字符串类型与任何数据类型相“+”都是字符串类型。

String +(byte,short,int,long,float,double,char) = String