黑马程序员技术交流社区

标题: 对基础数据类型的一些感悟 [打印本页]

作者: 刘雷冲    时间: 2012-3-5 22:08
标题: 对基础数据类型的一些感悟
1、boolean类型不可转换
2、容量小的类型自动转换成容量大的类型
         byte, short, char -> int -> long -> float -> double
         byte, short, char之间是不会相互转换的
3、容量大得类型转换成小的要加强制转化符,但可能溢出,使用时要格外小心
4、实数默认为double   整数默认为int

此为自己的一些理解,不到之处还请大家多多指教!

作者: 胡元    时间: 2012-3-5 22:43
哥们long    ->float是不假,但说它们是低位转高位
感觉不怎么现实呀?感觉不怎么现实呀?感觉不怎么现实呀?
作者: 黄方    时间: 2012-3-5 22:54
胡元 发表于 2012-3-5 22:43
哥们long    ->float是不假,但说它们是低位转高位
感觉不怎么现实呀?感觉不怎么现实呀?感觉不怎么现实呀 ...

低位是可以转向高位的,只是高位转向低位时(强制转换),有失精度!
作者: 胡元    时间: 2012-3-5 22:56
舞动的心弦 发表于 2012-3-5 22:54
低位是可以转向高位的,只是高位转向低位时(强制转换),有失精度!

我的意思是long->float是特殊的,他们是自动转换,但是是高位转低位!
作者: 黄方    时间: 2012-3-5 23:05
胡元 发表于 2012-3-5 22:56
我的意思是long->float是特殊的,他们是自动转换,但是是高位转低位!

float表示的范围比long大,不会超出范围,只是精度不够.我写了一个小程序:关于如何转换
public class testLong{
public static void main(String args[]){
Long a = 25L;
Float b ;
b = a.floatValue();
System.out.println(b);
}
}
在这里,给a赋值的时候必须加上后面的L,不然会把他当成int类型的变量给a,会报错的!
作者: 胡元    时间: 2012-3-5 23:36
舞动的心弦 发表于 2012-3-5 23:05
float表示的范围比long大,不会超出范围,只是精度不够.我写了一个小程序:关于如何转换
public ...

原来是我学艺不精,多谢执教!刚查资料了,以前以为float32位的,所以范围没有long大,呵呵!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2