Android L 神级 Bug - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
razrlele
V2EX    Android

Android L 神级 Bug

  •  
  •   razrlele 2014-11-30 19:44:51 +08:00 13665 次点击
    这是一个创建于 3975 天前的主题,其中的信息可能已经有所发展或是发生改变。
    
    26 条回复    2014-12-12 00:03:46 +08:00
    Mutoo
        1
    Mutoo  
       2014-11-30 19:46:58 +08:00
    这没有什么啦,js 里:
    > 0.1+0.2
    0.30000000000000004

    参见 IEEEE754
    ufo22940268
        2
    ufo22940268  
       2014-11-30 19:49:36 +08:00
    刚刚试了下,发现只有这两个数字相减才会,这是为什么呢
    Automan
        3
    Automan  
       2014-11-30 19:55:16 +08:00
    计算器居然不是高精度= =
    Xhybrid
        4
    Xhybrid  
       2014-11-30 20:00:38 +08:00 via Android
    貌似跟计算机的存储方式有关,都是01存储的,不可能精确把
    imgalaxy
        5
    imgalaxy  
       2014-11-30 20:05:21 +08:00
    http://tieba.baidu.com/p/1380632364
    几年前都有BUG。。。。
    razrlele
        6
    razrlele  
    OP
       2014-11-30 20:06:07 +08:00
    @Mutoo
    刚才用代码测试了一下:
    double型变量输出15位小数的结果是0.5999999999999994
    float型变量输出15位小数的结果是0.599998474121094

    看来这果然不是bug。。。

    @Automan
    这里面用的是double型变量,double型变量可以表示的数值范围是+/- 1.79769e+308,对于手机计算器一般应该是够了吧
    ETiV
        7
    ETiV  
       2014-11-30 20:07:31 +08:00
    我记得刚2000年左右那会儿, 某天中午看CCTV, 里面爆了一个卡西欧计算器的BUG.

    2*2*2*....*2 加 n(忘了是几次了...) 次, 最后的数是奇数.

    都是整数, 也会出错.
    rinehart
        8
    rinehart  
       2014-11-30 20:09:14 +08:00   1
    这个实现跟你的手机的厂商是否有对libm进行“优化”有关系
    Automan
        9
    Automan  
       2014-11-30 20:11:09 +08:00
    @razrlele 一般来说计算器应用在这种范围都不该用double的。。。几次计算下来就有误差了
    Cee
        10
    Cee  
       2014-11-30 20:12:51 +08:00
    不是有个笑话是什么算2500/50 按了一下没反应 结果再按一下是1么(
    razrlele
        11
    razrlele  
    OP
       2014-11-30 20:19:14 +08:00
    @Cee 这两个梗不一样诶。。。

    这个地方应该是计算机本身运算器的问题

    (不过我刚才还真跑去按了按发现结果是50我安心地笑了23333
    BGLL
        12
    BGLL  
       2014-11-30 21:27:06 +08:00
    里程碑的时代就发现了……
    mfaner
        13
    mfaner  
       2014-11-30 21:36:53 +08:00
    简直了。Java里一个BigDecimal就能解决的事情,有这么懒吗?
    kawaiiushio
        14
    kawaiiushio  
       2014-11-30 21:43:03 +08:00   1




    这只是一个精度未定义的问题、、、不算bug
    当然 安卓这个计算器app的制作人员也是坑爹
    0x1e240
        15
    0x1e240  
       2014-11-30 21:59:41 +08:00 via Android
    MIUI 没有的说
    jdqingm
        16
    jdqingm  
       2014-11-30 22:03:56 +08:00
    这是如何发现的bug……
    kawaiiushio
        17
    kawaiiushio  
       2014-11-30 22:17:47 +08:00
    @0x1e240 万物基于miui 不科学啊23333
    lincanbin
        18
    lincanbin  
       2014-11-30 22:19:11 +08:00
    旧版本安卓的计算器的确没这个问题。
    计算器一般应该用大整数模拟小数进行运算的。
    kmvan
        19
    kmvan  
       2014-11-30 22:59:51 +08:00

    2.3.5版也有问题
    xz
        20
    xz  
       2014-11-30 23:31:54 +08:00 via Android
    @ETiV 2的23次方?
    ryd994
        21
    ryd994  
       2014-12-01 09:16:36 +08:00
    @imgalaxy
    @Automan
    @kawaiiushio
    It's not a bug: it's a feature...
    min
        22
    min  
       2014-12-01 13:19:42 +08:00
    windows phone表示没有这个题算出来是0.6
    razrlele
        23
    razrlele  
    OP
       2014-12-01 13:57:54 +08:00 via Android
    @min 哈哈哈,突然觉得巨硬可以拿着出个广告的感觉。

    广告词我都想好了:Look, we are more accurate!
    min
        24
    min  
       2014-12-01 14:21:05 +08:00
    @razrlele 赞助开发商多移植几个nb的app是正道
    kx5d62Jn1J9MjoXP
        25
    kx5d62Jn1J9MjoXP  
       2014-12-05 16:16:40 +08:00
    4.4 没有这个bug...
    LittleMK
        26
    LittleMK  
       2014-12-12 00:03:46 +08:00 via Android
    flyme 3.+木有
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2575 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 04:07 PVG 12:07 LAX 21:07 JFK 00:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86