int 转float 被截断问题 floatjavaint 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个浮点数在计算机中如何保存有关,具体实现的,楼主可以参考http://www.math.byu.edu/~schow/work/IEEEFloatingPoint.htm 首先:你自己猜测,输出2感觉是输出1的进位的结果,计算机的运算可不能这么猜测,必须要懂他的原理我找了找资料1,先了解float在内存中是怎么存储的 float有32位,存储如下. 2,把214748364这个数字转为2进制 11001100110011001100110011003,然后变成这样,从最后1位移动27才形成这样的效果,转化的时候必须形成1.什么的效果 1.1001100110011001100110011004.按照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,不知道为什么 估计是sun公司的代码中的bug! 高耦合還是低內聚 JTABLE如何分页显示 JFrame的dispose后,为什么有时候可以退出程序,有时候不能 java oralce blob和clob 学JAVA也累,可以边学边赚钱! UltraEditor如何设置 利用JAVA能否设计多文档界面(MDI)的应用程序? 求助! jbuilder7.0遇到的问题 在jBuilder7内如何配Inprise Application Server? 两个包里有同名的类,怎么知道用哪个 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,不知道为什么