如果a
和b
是正整数小于Number.MAX_SAFE_INTEGER
和a
可被b
整除,是否保证console.log(a / b)
将输出一个整数(而不是,例如,以.9999999999
结尾的数字)?此外,a % b === 0
会持有吗?
至少基于ECMAScript标准,applying / operator的规则提到该语言不执行整数除法,并且在典型情况下计算商并使用IEEE 754-2008舍入到最接近的可表示值舍入到最近,与偶数模式相关联。
因此,如果分子(在安全范围内)可被非零分母均分,则结果必然是一个数学整数,因为IEE 754-2008可以将其表示为一。
%
也是如此,在这种情况下会产生0。