关于计算浮点型的疑问

2017-03-11 01:31:23 +08:00
 gps32251070

计算机小数的运算中 0.1+0.7 < 0.8 这个是知道的 但是为什么 0.1 + 0.2 = 0.3? 0.2 转化成二进制同样是无限循环小数啊??按理不应该也是 0.1 + 0.2 < 0.3 么

2308 次点击
所在节点    Linux
8 条回复
gps32251070
2017-03-11 01:58:54 +08:00
好吧,知道原因了。
ryd994
2017-03-11 07:48:36 +08:00
于是呢?为什么?
chingli
2017-03-11 08:36:17 +08:00
为什么会有 0.1 + 0.2 < 0.3 ?而不是 0.1 + 0.2 > 0.3 ?

看不懂你说的问题。只知道不能直接比较两个浮点数是否相等,而具体应该怎么做还是很复杂的。

https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/

https://en.wikipedia.org/wiki/Unit_in_the_last_place
ynyounuo
2017-03-11 09:08:58 +08:00
这个主题好尴尬啊 ………
0915240
2017-03-11 09:59:52 +08:00
gps32251070
2017-03-11 14:20:36 +08:00
@chingli 因为第一反应是小数被舍去了一部分就会一直小,后来重新仔细算了下,尴尬
chingli
2017-03-11 14:58:08 +08:00
@0915240 你给的链接和楼主的问题用例太贴合了。
mengzhuo
2017-03-11 23:47:42 +08:00
以前我也很疑惑,直到我看过这个视频,这个教授很赞
<amp-youtube data-videoid="1qOCLMTaKdU" layout="responsive" width="480" height="270"></amp-youtube>?list=PLbtzT1TYeoMgzLyE9n-pJrTFZX18EUKw_

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/346603

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX