关于java中的类型转换.求教中. java中的long是64位,float是32位.为什么我将一个long赋值给float却不报错?eg: float f = 0; long l = 154684; f = l;我的理解是float应该位数不够而报错啊!迷惑中~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 long -9.2*10^18 ~~ 9.2*10^18float -3.4*10^38 ~~ 3.4*10^38可以看出来float表示的范围要比long的范围大,尽管float的位数少 你取的数太少了,flout相当于20平米的房子,double相当于40平米的房子,如果一个人占一平米,你想你一个人的话,是不是哪个里面也能放的下啊,如果是40个人的话,你想flout是不是就不行了 like_wolf 的观点错误的。long和float从根本上讲它们表示的不是一类数,前者是精确值,而后者是非精确值。float的字节宽度没有long大,但它的表现值宽度要宽得多,因此long到float是没有问题的。下面的例子能说明问题,x已经是long的最大值了,赋值给y后结果如何自己看吧long x=0x7fffffffffffffffL;float y=x;System.out.println(x);System.out.println(y); 曾记得有本书这样说过,可以认为float比long范围更大 支持wangqiyy 的观点.不是[你取的数太少了]给分给分.CSDN上混了8年现在成0分了,同情下我,随便进进我的网站支持一下http://www.91shang.com float可以用指数表示更大的数,但是long就不行 float是4个字节,最多只能表示出2^32次个数,但是long是8个字节,可以表示2^64次个数,也就是说float的值范围大,但是很多long的数它是表示不了的,只能近似,既使是long转double也仍然有很多数不能表示,只能近似,如果是银行系统之类的精确运算,应该用BigDecimal类(题外话); 两者表示数据的方式不一样,float采用IEEE的表示法,而long是用位数来控制的范围 你所取的long的值太小了...而且float所能表示的数据范围比long类型的要广.所以可以把Long类型的数据直接给float类型的数据进行赋值. 哈哈,小弟明白了。谢谢各位的帮忙!可惜分数不多,只好给最先解出的wangqiyy拉!看样子还是我自己看书有思维定式,改进中再次感谢! 支持一下---------------------------内推网 - 内部推荐 求职快线http://www.neitui.com redduke1202和wangqiyy的意思是一样的long虽然比float长,但是结构不一样,所以float表示的范围会大一些所以楼主 欢迎加入本人的QQ群,群号5586686,身份认证输入如:JAVA、JSP、STRUTS等都可以,非软件开发人员勿加,谢谢合作! JOptionPane标题栏 不跟外观风格一致 eclipse 能在界面中调用javap -c **.java 命令吗??? 关于Object的问题 android运行的问题 (比较弱智的问题)如何运行非当前目录的java程序 在JAVA中 ABCD的自由组合排列有几种,并打印出来 一个线程同步问题 java生成jpeg/png图片时,如何设置图片质量? jbuilder7中的报表 jre1.4的小疑问! 用JDBC操作数据库,高手请进!!!!!!!!!! 不循环数组能不能打印数组中所有的字符串?
float的字节宽度没有long大,但它的表现值宽度要宽得多,因此long到float是没有问题的。下面的例子能说明问题,x已经是long的最大值了,赋值给y后结果如何自己看吧long x=0x7fffffffffffffffL;
float y=x;
System.out.println(x);
System.out.println(y);
可以认为float比long范围更大
随便进进我的网站支持一下http://www.91shang.com
也就是说float的值范围大,但是很多long的数它是表示不了的,只能近似,既使是long转double也
仍然有很多数不能表示,只能近似,如果是银行系统之类的精确运算,应该用BigDecimal类(题外话);
float类型的数据进行赋值.
可惜分数不多,只好给最先解出的wangqiyy拉!
看样子还是我自己看书有思维定式,改进中
再次感谢!
内推网 - 内部推荐 求职快线
http://www.neitui.com
long虽然比float长,但是结构不一样,所以float表示的范围会大一些所以楼主