首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
华为云
V2EX  ›  问与答

为什么 python3 出现这样的加法结果 0.4 +0.8 =1.2000000000000002

  •  1
     
  •   wzw · 63 天前 · 1072 次点击
    这是一个创建于 63 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家在 python 3.6 中试试 print(0.4 + 0.8)

    为什么会这样?
    9 回复  |  直到 2018-09-16 12:36:17 +08:00
        1
    windfarer   63 天前
        3
    cabbage   63 天前 via Android
    你可以试试,所有编程语言包括 js 都是这样的(浮点类)
        4
    n2ex2   63 天前 via Android
    周经了
        5
    MonoLogueChi   63 天前 via Android
    应该是因为浮点运算的原因,二进制无法准确表示十进制小数。十进制小数转换成二进制,然后再转换成十进制,就会有一定的误差,这个误差大小是根据你的精度确定的,比如你用双精度,转换之后中间的 0 要比用单精度多。
    结果是 1.2000000000000000002 还是 1.199999999999999998,要看你对于进制转换是怎么取舍的。
        6
    jingniao   63 天前 via Android
    从我注册这站,这第几次了?
    感觉可以出个集合贴了(≧▽≦)
        7
    zn   63 天前
    这位同学还是得多学习点姿势才行。
        8
    fayloue   63 天前
    浮点误差,excel 也经常这样
        9
    Tompes   62 天前
    浮点运算都是不准确的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   652 人在线   最高记录 3821   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 19ms · UTC 21:49 · PVG 05:49 · LAX 13:49 · JFK 16:49
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1