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

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

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

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