1
em84 2017 年 11 月 30 日
o.999999...不就是等于 1
|
2
dushixiang 2017 年 11 月 30 日
试试这个 console.log(1/3 + 1/3 +1/3);
|
3
xiubin 2017 年 11 月 30 日
10x - x = 9
x = 0.99999... 10x = 9.99999... 10x - x = 9 x = 1 10x = 10 10x - x = 9 so: 0.999999... == 1 js 里出现什么我都是不奇怪的,因为我坚信 Swift 才是要统治世界的语言,2333333 |
4
Tink PRO 有个东西叫微积分
|
5
changnet 2017 年 11 月 30 日 via Android
浮点型精度问题,哪种语言都有啊
|
6
hsuan 2017 年 11 月 30 日
楼主高中生吧,没学过极限的概念?
|
7
zhx1991 2017 年 11 月 30 日
1=0.9 的循环
不懂的人应该重上一下大学的数学课 计算机没有无限循环的说法 |
9
dangoron 2017 年 11 月 30 日 via Android
额。。同学估计没学过数值运算?数字化之后有精度损失的
10 * 0.999999 … - 0.999999 … = 9 * 0.999999 … = 9.999999 … - 0.999999 … = 9 1 = 0.999999 … 这是在循环小数能循环到无限低位才成立的,数值化之后自然不成立了。js 浮点数的值不精确导致===结果很奇怪 |
10
Navee 2017 年 11 月 30 日
你要考虑到计算机语言浮点类型数据的精度。
|
11
zhengxiaowai 2017 年 11 月 30 日
听过 ieee 754 么,绝大多数的语言的浮点数都是用这个标准的
|
13
mengzhuo 2017 年 11 月 30 日 @xiubin #12
我之前学计算机原理的时候也不是很清楚,直到看到这位教授的课程 &index=9&list=PLbtzT1TYeoMgzLyE9n-pJrTFZX18EUKw_ 简单的说,有限的计算机对无限的小数无解,一切都只是近似 |
14
AV1 2017 年 11 月 30 日 via Android
这是很典型的浮点精度丢失问题,所有语言都会有的。
|
15
araraloren 2017 年 11 月 30 日
|
17
Panic 2017 年 11 月 30 日
难道不是高数问题吗
|
18
clino 2017 年 11 月 30 日
0.9999999.... 就是 1
因为 1- 0.9999999.... 的结果 0.000000.... 这后面一直是 0 没有任何其他数的,所以就是 0 |
20
nullcoder 2017 年 11 月 30 日
第一个问题参考高数的极限概念
13 楼的视频对第二个问题应该很有帮助 简单说,就是有限位的二进制的小数不能表示所有十进制的小数 比如十进制的 0.2,二进制就是无限小数。如果你了解十进制二进制转换。 常见的一个例子就是 0.1 + 0.2 != 0.3 |
21
victor97 2017 年 11 月 30 日 via Android
楼主的第一个问题是数学问题。0.99999999 无限循环,就是 1
但这个问题不能用代码验证…因为计算机浮点类型会损失精度。 |
26
Tunar 2017 年 11 月 30 日 via Android
。。突然想到这个
1/9=0.11111111111 2/9=0.22222222222 3/9=0.33333333333 。。。。。。。。。 8/9=0.88888888888 9/9=? |
28
bxb100 2017 年 11 月 30 日 via Android
可怕
|
29
tlday 2017 年 11 月 30 日 via Android
@xiubin 虽然我也觉得 js 设计的很烂,但你这个论据我不服。浮点数精度又不是 js 的问题。精度敏感的场合用 decimal 是常识。
|
31
cmlx1014 2017 年 11 月 30 日
高等数学学了没?
|
32
Ehend 2017 年 11 月 30 日 via Android
9*x/(1-x)在区间(0,1)中可以无限展开为 9*(x+x^2+x^3+x^4+...),把 x=0.1 代入可得,0.9/0.9=9*(0.1+0.01+0.001+...)=0.9999...=1
这是高数里的级数,有兴趣可以自己学习,0.999...实质上就是 1,已经被证明了的,不是所谓的趋近于 |
33
ybf1220 2017 年 11 月 30 日 via iPhone 记得以前有个比喻很形象:子弹从 0 米射向 1 米外的靶,肯定是先到 0.9 米,然后 0.99 米,然后 0.999 米 0.9999 0.99999 ……如果两个不相等不等于说子弹永远打不到 1 米的地方,所以这两个是相等的
|
34
yvanst 2017 年 11 月 30 日 via Android
忘记在哪看到的说法了 如果两个数之间插不进任何数 那这两个就是一个数
|
36
UnknownR 2017 年 11 月 30 日
你能找到比 1 小,比 0.9 循环大的数吗
|
37
phieo 2017 年 11 月 30 日
这不是数学问题,是 JS 精度问题
|
38
uolcano 2017 年 11 月 30 日 via Android
本质上是二进制到十进制小数的转换问题,所有语言都有这个问题
|
39
keinx 2017 年 11 月 30 日
比去你那个,这个才是个奇怪的问题
 |
40
zjw60320 2017 年 11 月 30 日
这是高中数学吧?极限的问题
|
42
ihuzhou 2017 年 11 月 30 日
大学有一个教授讲座就跟我们讲 0.9 的循环==1
|
43
tobeit 2017 年 11 月 30 日
有个叫二进制的东西
好好研究一下吧 |
44
hasbug 2017 年 12 月 1 日
千万不要对比浮点数,它会毁了你的三观。
|
45
susucoolsama 2017 年 12 月 1 日
我觉得是计算机无法表示极限吧,毕竟是 0 和 1 的集合。
|
46
HatMatrix 2017 年 12 月 1 日
不奇怪
|