-224 / -37.333333333333336 = 6
-224 % -37.333333333333336 = -37.33333333333332
(-224 / -37.333333333333336) % 1 = 0
如果第一个结果为%
,为什么0
不会返回6
?
为什么第三次计算中的结果不是float
?
答案 0 :(得分:4)
JavaScript中的所有数字都是64位浮点数。仅仅因为它没有显示数字0.0
并不意味着它不是双倍的。
根据WolframAlpha的说法:
-224 / -37.333333333333336 = 5.9999999999999995714285...
由于浮点除法的精度限制/舍入,因此除法在JavaScript中得到6。
然而,模运算正确地看出-37.3 ...不太适合-224六次。这意味着除法之后剩余的99.99%的-37.33 ......是剩余的,它对应于模运算的结果。
因此,你得到几乎,但不完全是,除数。