为什么float 能表示long的数?
4个字节的float, 为什么能够表示8字节的long数
long a=30000000000000L;
float b=a;
输出是30000000000000
问题点数:10、回复次数:10Top
1 楼starter_2006(新手)回复于 2006-03-04 17:47:40 得分 0
float存储long并不越界不失精度Top
2 楼walkhome()回复于 2006-03-04 18:03:24 得分 0
float不是4字节吗? 为什么不失精度呢Top
3 楼starter_2006(新手)回复于 2006-03-04 18:13:25 得分 0
long的取值范围-9223372036854775808---9223372036854775807
float的取值范围-1.4*10^(-45)----3.4*10^38Top
4 楼treeroot(旗鲁特)回复于 2006-03-04 18:21:40 得分 0
当然要失去精度了,说话要负责任呀
float的精度只有6-7位。Top
5 楼starter_2006(新手)回复于 2006-03-04 18:25:05 得分 0
我是说题目Top
6 楼famousboy(famousboy)回复于 2006-03-04 18:25:53 得分 0
float 和 long 保存数据的格式不同,float分为指数和底数两部分。并不是占用的空间越多保存的信息就越多,你只要关心float和long的表示范围就可以了。Top
7 楼treeroot(旗鲁特)回复于 2006-03-04 18:36:42 得分 0
怎么还没搞清楚呀
float可以表示long,但是会失去精度,比如
10000000043242
后面的数字当然是被忽略。Top
8 楼treeroot(旗鲁特)回复于 2006-03-04 18:37:13 得分 10
事实上float表示int都要失去精度的
float关心的有效数字Top
9 楼walkhome()回复于 2006-03-04 18:39:15 得分 0
那float的整数表示范围是不是38位,
如果是比long大的话,为什么CORE JAVA 里说long数转成float数可能精度丢失
和保存格式有关係吗?Top
10 楼walkhome()回复于 2006-03-04 18:41:53 得分 0
treeroot的意思是不是float 能表示38位的數,但只關心6-7位的有效數字,其他丟失Top




