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

关于计算浮点型的疑问

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

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