数据类型的转换有什么规则?

数据类型(int double float )之间的转换是四舍五入还是截去多余的部分?还是两种情况都有?若是,是什么情况?

数据转换,隐式转换不会精度丢失,显示转换(强转)会导致精度丢失,像浮点型转整形,小数点后面的会没有,不是四舍五入,而是直接就没了,如果数值过大,就会溢出。
比如int a=260;
byte b=(byte)a;//会得到一个负数,
想要做到四舍五入,调用Math.round()方法,再进行数据类型转换即可。

/*int i=5;
float f=(float) i;
System.out.println(f);*/ // 结果5

    /*double d=4.9;
    int i=(int)d;
    System.out.println(i);*/          //  结果 4

    /*double d=4.3;
    int i=(int)d;
    System.out.println(i);*/            //也是4

    // float 与double 都是浮点型