考虑到 float 的不精确性,这个等式是否保证对于 a
的任意数值都成立,除法运算 a/a
返回一个数字值(value)?
Math.floor(a / a) == 1
最佳答案
IEEE 754 指定操作的结果是四舍五入到最接近的可表示值的精确数学结果(在用户可以指定的方向上——向上、最近等)。当精确的数学结果可表示时,它是最接近的值,没有四舍五入,所以结果是精确的。因此,只要没有发生异常,a/a
就是 1。
如果我没记错的话,JavaScript 不允许实现使用过高的精度(例如,C 就允许)。所以 a/a
被按预期评估。那么Math.floor(a/a)
为1,Math.floor(a/a) == 1
为真。
关于javascript - `Math.floor(a/a) == 1` 是否保证任何 `a` 使得 `a/a` 不是 NaN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53027225/