package cn.zhao.base; /** * 数据类型转换 * */ public class MyDemo { public static void main( String[] args ) { //6个正常顺序的类型转换 // byte -> short // short -> int // int -> long // char -> int // int -> double // float -> double //3种可能会丢失精度的转换 //int -> float // long -> double // long -> float System.out.println( "当两个数运算时,如果有一个是double,是将别一个也转成double" ) ; System.out.println( 3 + 3.0 ) ; System.out.println( "当两个数运算时,如果有一个是float,是将别一个也转成float" ) ; System.out.println( 3 + 3.0f ) ; System.out.println( "当两个数运算时,如果有一个是long,是将别一个也转成long" ) ; System.out.println( 3l + 3 ) ; System.out.println( "否则,2个数都将被转换成为int,很明显,结果不对,是因为200超出byte范围,丢失精度") ; System.out.println( 100 + (byte)200 ) ; System.out.println( "------------------强制类型转换-----------------" ) ; System.out.println( "double向int强转") ; double num = 300.5 ; int intNum = (int) num ; System.out.println( intNum ) ; //结果是300,小数向整数强转就是将小数部分去掉。 //如果想要精确转换,要以使用四舍五入 int intNumRound = (int) Math.round( num ) ; System.out.println( intNumRound ) ;//301 } }