今天无意间看到一个书上写的,没想明白,看看大家能给解释下不
double dd=12.255
//想取得dd的整数部分,那么直接将dd强转为long类型
long lg=(long)dd;
怎么是强成long呢,long也是浮点数啊,是不是应该转成int型 呢,但我又觉得书不太可能出这样的错误吧,自己也不理解,请教!
首先,整形包括 byte short int long 按原理上说四种都可以转换,long不是浮点型,浮点型是float和double
可是short和byte都是表示范围较小的数,容易损失精度,
而int和long表示的数值范围要大些,特别是long最大,
它们表示范围由小到大的排序是 byte,short,int,long
至于你觉得应该转换成int型,那是因为int型是最常用的数据型,所以,通常在我们定义一个数据类型的时候,
最先想到的就是int型,而现实生活中的大部分数值范围也在int型的范围之内。
|