首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
V2EX  ›  Linux

关于计算浮点型的疑问

  •  
  •   gps32251070 · 2017-03-11 01:31:23 +08:00 · 1590 次点击
    这是一个创建于 950 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    8 回复  |  直到 2017-03-11 23:47:42 +08:00
        1
    gps32251070   2017-03-11 01:58:54 +08:00 via iPhone
    好吧,知道原因了。
        2
    ryd994   2017-03-11 07:48:36 +08:00 via Android
    于是呢?为什么?
        3
    chingli   2017-03-11 08:36:17 +08:00 via Android
    为什么会有 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
        4
    ynyounuo   2017-03-11 09:08:58 +08:00
    这个主题好尴尬啊 ………
        5
    0915240   2017-03-11 09:59:52 +08:00
        6
    gps32251070   2017-03-11 14:20:36 +08:00 via iPhone
    @chingli 因为第一反应是小数被舍去了一部分就会一直小,后来重新仔细算了下,尴尬
        7
    chingli   2017-03-11 14:58:08 +08:00
    @0915240 你给的链接和楼主的问题用例太贴合了。
        8
    mengzhuo   2017-03-11 23:47:42 +08:00
    以前我也很疑惑,直到我看过这个视频,这个教授很赞
    ?list=PLbtzT1TYeoMgzLyE9n-pJrTFZX18EUKw_
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4159 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 07:34 · PVG 15:34 · LAX 00:34 · JFK 03:34
    ♥ Do have faith in what you're doing.