javascript - `Math.floor(a/a) == 1` 是否保证任何 `a` 使得 `a/a` 不是 NaN?

标签 javascript floating-point precision

考虑到 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/

相关文章:

rust - 如何检查大于 2 ^ 54 的 u64 数是否可以被 f64 整除且精度损失最小?

javascript - Gdata JavaScript Authsub 继续重定向

c++ - 梯度下降算法

mongodb - 如何确保 mongodb 地理空间坐标中的小数精度?

c++ - 圆形 float :Print exactly two digits after the decimal point rounded to the nearest decimal place

floating-point - 不能用单精度浮点表示的最小整数

c - 如何在C中自动缩放浮点值?

javascript - 如何从 firebase 在 Accelerated Mobile Pages(AMP) 中显示数据

Javascript 动态表单字段

javascript - jquery 链接在我的 html 中对每个函数不起作用