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

谷歌计算器的结果和微软计算器的结果不一致

  •  1
     
  •   hzhengy · 2021-07-24 09:05:13 +08:00 · 3704 次点击
    这是一个创建于 1197 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Imgur

    https://imgur.com/2NNQec5

    计算 9^17: 谷歌计算器:16,677,181,699,666,568 微软计算器:16,677,181,699,666,569

    最后一位,一个是 8,一个是 9,这是为什么?

    18 条回复    2021-07-26 16:18:34 +08:00
    CatCode
        1
    CatCode  
       2021-07-24 09:07:07 +08:00   ❤️ 8
    google 的错了啊 奇数自乘怎么可能得到偶数呢
    webshe11
        2
    webshe11  
       2021-07-24 09:07:15 +08:00 via Android
    Python:
    >>> 9**17
    16677181699666569
    看来微软的对
    maplerecall
        3
    maplerecall  
       2021-07-24 09:22:17 +08:00 via Android   ❤️ 5
    Google 网页版是 js 实现,直接用了原始 Number 类型,所以存在大数精确度的问题。这个数已经超过 js 原生支持的最大安全整型了,内部是 float,所以不准确。
    xiangyuecn
        4
    xiangyuecn  
       2021-07-24 09:23:17 +08:00
    js 超过最大支持的范围了,结果不精确

    Number.MAX_SAFE_INTEGER

    Math.pow(9,17)
    ryd994
        5
    ryd994  
       2021-07-24 10:23:04 +08:00 via Android
    Bing 直接显示科学计数法了。虽然不精确但也没有错
    XavierWang3P
        6
    XavierWang3P  
       2021-07-24 10:33:26 +08:00
    Siri 算出来也是 16,677,181,699,666,568

    ![]( https://i.loli.net/2021/07/24/UeGJNXgwifYkuBr.png)
    autoxbc
        7
    autoxbc  
       2021-07-24 10:34:23 +08:00
    9 ** 17 ×
    9n ** 17n √
    JensenQian
        8
    JensenQian  
       2021-07-24 10:43:58 +08:00 via Android
    🐒厂计算器
    [img][/img]
    hiplon
        9
    hiplon  
       2021-07-24 10:55:42 +08:00
    c#也跑错了,

    Lemeng
        10
    Lemeng  
       2021-07-24 10:55:59 +08:00
    这种计算都是用的自带,没用过谷歌的
    sutra
        11
    sutra  
       2021-07-24 11:16:39 +08:00
    应该是计算过程中使用的是 double 的问题,计算过程改成 int/long 应该就不会了。
    mcoo1997
        12
    mcoo1997  
       2021-07-24 13:02:53 +08:00 via Android
    python 算下 1.1+2.2 破事水
    TypeError
        13
    TypeError  
       2021-07-24 13:22:55 +08:00 via Android
    还是 Python 舒适,自带大数运算
    thunderw
        14
    thunderw  
       2021-07-24 14:25:46 +08:00 via iPhone
    iOS 的计算器比较鸡贼。直接告诉你大约是 1.667718169967e16 自己看着办吧
    BrettD
        15
    BrettD  
       2021-07-24 15:02:59 +08:00 via iPhone
    @hiplon double 类型精度限制导致的,用高精度类就能算出正确结果
    DeWjjj
        16
    DeWjjj  
       2021-07-24 22:03:19 +08:00
    IEEE754 二进制分数问题。
    kkocdko
        17
    kkocdko  
       2021-07-25 02:38:38 +08:00 via Android
    @maplerecall 这计算器又不需要多少性能,偷懒不手动实现高精度也太坑了吧
    CodeCodeStudy
        18
    CodeCodeStudy  
       2021-07-26 16:18:34 +08:00
    9 次幂,最后一个数不是 9 就是 1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2737 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:27 · PVG 20:27 · LAX 05:27 · JFK 08:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.