首页 新闻 会员 周边

简单却又不那么容易理解的问题

0
悬赏园豆:10 [已解决问题] 解决于 2016-05-06 15:54

(123456789111111111111.01333*100)==12345678911111111100000

//true

 

这里我将右边数字的后面精度减小了10000,但是依然相等。这怎么解释啊

Rod_zhu的主页 Rod_zhu | 初学一级 | 园豆:173
提问于:2016-05-06 15:07
< >
分享
最佳答案
0

 浮点数是有精度.左边的结果已经丢失精度了.

收获园豆:10
吴瑞祥 | 高人七级 |园豆:29449 | 2016-05-06 15:46

浮点数的支持最大308位,现在这么小的数据也丢失精度,这怎么理解啊

Rod_zhu | 园豆:173 (初学一级) | 2016-05-06 15:47

@Rod_zhu:是支持最大308.而不是精度是308

你的浮点类型的精度.比如你的浮点类型是8字节 64位.其中32位是小数32位是精度.

你需要学下机内表示的知识.不然说了你也不明白.http://www.zhihu.com/question/24442234 这个是知乎上的说法.你可以百度下 :浮点数的机内表示.

PS:这就是我为什么一直说编程入门要从C程序设计开始学起.

吴瑞祥 | 园豆:29449 (高人七级) | 2016-05-06 15:51

@吴瑞祥: 非常感谢你的提示。我研究下

Rod_zhu | 园豆:173 (初学一级) | 2016-05-06 15:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册