http://i13.tietuku.com/7b11748d1d3f7b41.png
在 javascript 里面 1%0.1=0.09999999999999995???不懂。
新人求教,谢谢。
1
blahgeek Oct 10, 2015 via iPhone
因为这是 javascript (逃🙈
|
2
CRVV Oct 10, 2015 怎么老有人问这个问题
这和 Javascript 没有关系... 因为 > (0.1).toPrecision(21) '0.100000000000000005551' 这个东西的原因,是二进制有限小数和十进制有限小数能表示的数字不是同一个集合 0.1 不能用有限二进制小数准确表示 比如三进制的 0.1 ,用十进制表示是 0.333333333...,一个道理 |
6
YuJianrong Oct 10, 2015
因为 JS 里的 number 就是 C/Java 的 double 。
(不要提位运算,那是特例。 |
7
just1 OP 于是取余数要这样子吗
9-Math.floor(9/4)*4 |
9
YuJianrong Oct 10, 2015
@just1 取余操作本来就应该仅针对两个整数操作,很多语言里根本就不能对浮点数取余, JS 能为浮点取余只是为了让 API 看起来更合理而已。
|
10
just1 OP |
11
msg7086 Oct 11, 2015
0.1 在二进制里是个无限小数,无法精确表示。
|
12
johnnyb Oct 11, 2015 |
13
lincanbin Oct 11, 2015 via Android
IEEE754
|