请问一下,在java中,long的大小是8字节,float的大小是4字节,8字节的long怎么就可以隐式的转换为4字节float的呢?
4条回答 默认 最新
- turing-complete 2011-03-28 19:54关注
这都说了些什么!
这不误人子弟嘛
兄弟,是这个样子的:由于浮点数的存储机制与定点不同,使得它能表示的数的范围大大扩展了,举个例子 [code="java"]float i=2345000000000L;[/code]
对这个数而言,4字节的int类型是指定存不下的,但是单精度浮点数是可以的。纵使是单精度,它也是浮点数,可表示数的范围-2^127~2^127折合十进制-1.7*10^38~1.7*10^38 , 瘦死的骆驼比马大。 long 可表示的数的范围还不足10^20,那你说可不可以自动转型 ?!
为什么同样是四个字节,float这么厉害? 那还要long干什么 ?
切记:使用浮点型的时候,要注意它的“有效数字”(强调一下),单精度为7位,7位以后的皆不可信了。 它牺牲的是 有效数字的位数!数的范围是足够了
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 对于相关问题的求解与代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料
- ¥15 使用R语言marginaleffects包进行边际效应图绘制