JS中整数除法的精确性

时间:2019-04-04 09:43:55

标签: javascript floating-point precision division

如果ab是小于Number.MAX_SAFE_INTEGER的正整数,并且ab整除,是否可以保证console.log(a / b)将输出一个整数(而不是以.9999999999结尾的数字)?另外,a % b === 0会一直保持下去吗?

1 个答案:

答案 0 :(得分:2)

至少基于ECMAScript标准,applying / operator的规则提到该语言不执行整数除法,在典型情况下,该商被计算并四舍五入为使用IEEE 754-2008的最接近可表示值,四舍五入为最接近值,与偶数模式相关。

因此,如果分子(在安全范围内)可以被非零分母均匀地整除,则结果必然是一个数学整数,因为IEE 754-2008可以将其表示为一个整数。

%相同,在这种情况下将产生0。