数据类型(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 都是浮点型