解决方案 »
- 我想请教的是如果我的inputStream对象中的数据比较多,比如几千万个btye,是将b初始化为所有数据长度,调用read方法一次写入所有的数据到数组中但是我
- CMD下怎样用jar命令将一个目录下的所有内容打包到一个jar文件里面,请教命令具体该怎么写?
- jstl问题
- java多线程关闭问题?
- 关于显示 输出的问题!
- (急! ! !)读取Excel文件时遇到The System cannot find the file specified
- 打印打印打印打印打印打印打印VSjavajavajavajavajavajavajavajavajava我要崩溃了!兄弟近来安慰两句吧!(有分140)
- 连接sql server 2000出错,麻烦大家帮忙!
- 一个方法返回值是boolean
- 如何写Button类来取代系统定义的Button,高手请进。
- 两个包里有同名的类,怎么知道用哪个
- Linux 运行java
我找了找资料
1,先了解float在内存中是怎么存储的
float有32位,存储如下.
2,把214748364这个数字转为2进制
1100110011001100110011001100
3,然后变成这样,从最后1位移动27才形成这样的效果,转化的时候必须形成1.什么的效果
1.100110011001100110011001100
4.按照1步骤的说法
1 10011010 10011001100110011001100
符号 指数 省略了后4位组成的
5,这个好像是内存存储float的方式(为啥说好像呢,因为我也是刚刚看了下资料来的,所以我也不确定对不对)
6,因为省略了后四位,所以精度就错了
7,开始反推回去
第一位说明是正数
后八位代表指数10011010 - 127 = 154 - 127 = 27 为啥减127呢,看资料看的
后面的数加上1. 为 1.10011001100110011001100 ,指数27为正数,所以小数点后移27位,遇到不足的情况(我也不知道补啥)
我就补1了,变为1100110011001100110011001111 十进制为214748367. 2.14748367E8 ,跟你的差1,不知道为什么