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

2021-07-24 09:05:13 +08:00
 hzhengy

https://imgur.com/2NNQec5

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

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

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

Number.MAX_SAFE_INTEGER

Math.pow(9,17)
ryd994
2021-07-24 10:23:04 +08:00
Bing 直接显示科学计数法了。虽然不精确但也没有错
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
2021-07-24 10:34:23 +08:00
9 ** 17 ×
9n ** 17n √
JensenQian
2021-07-24 10:43:58 +08:00
🐒厂计算器
[img][/img]
hiplon
2021-07-24 10:55:42 +08:00
c#也跑错了,

Lemeng
2021-07-24 10:55:59 +08:00
这种计算都是用的自带,没用过谷歌的
sutra
2021-07-24 11:16:39 +08:00
应该是计算过程中使用的是 double 的问题,计算过程改成 int/long 应该就不会了。
mcoo1997
2021-07-24 13:02:53 +08:00
python 算下 1.1+2.2 破事水
TypeError
2021-07-24 13:22:55 +08:00
还是 Python 舒适,自带大数运算
thunderw
2021-07-24 14:25:46 +08:00
iOS 的计算器比较鸡贼。直接告诉你大约是 1.667718169967e16 自己看着办吧
BrettD
2021-07-24 15:02:59 +08:00
@hiplon double 类型精度限制导致的,用高精度类就能算出正确结果
DeWjjj
2021-07-24 22:03:19 +08:00
IEEE754 二进制分数问题。
kkocdko
2021-07-25 02:38:38 +08:00
@maplerecall 这计算器又不需要多少性能,偷懒不手动实现高精度也太坑了吧
CodeCodeStudy
2021-07-26 16:18:34 +08:00
9 次幂,最后一个数不是 9 就是 1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/791461

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX