BigInt除法结果总是整数,向零截断;不支持与Number混合运算;余数运算符%符号随被除数;需小数时应转Number或用高精度库。
BigInt 除法结果总是整数
bigint 的除法运算符 / 不会产生小数,它会直接截断小数部分,只保留整数商。这个过程不是四舍五入,而是向零取整(truncation toward zero)。
-
7n / 2n→3n(不是3.5n,BigInt 不支持小数) -
-7n / 2n→-3n(负数也向零截断,不是向下取整) -
9n / 4n→2n,10n / 4n→2n,11n / 4n→2n
除法不支持混合类型操作
BigInt 与 Number 类型不能直接参与除法运算,否则会抛出 TypeError。
-
10n / 3❌ 报错:Cannot mix BigInt and other types -
10n / BigInt(3)✅ 正确,结果为3n -
Number(10n) / 3✅ 可行,但转成 Number 后可能丢失精度(如超大 BigInt)
余数运算符 % 与除法配套使用
当需要获取除法的余数时,用 % 运算符,它和除法一样只作用于 BigInt,且行为一致:
-
10n % 3n→1n -
-10n % 3n→-1n(符号跟随被除数) -
10n % -3n→1n(符号不跟随除数)
没有浮点商,需外部库处理小数需求
如果业务确实需要带小数的除法结果(比如计算比率、百分比),BigInt 本身无法满足。此时应:
- 先转为 Number(仅适用于不超过
Number.MAX_SAFE_INTEGER的值) - 或借助高精度小数库(如
decimal.js、big.js)做字符串级精确运算 - 避免用
parseFloat((a / b).toString())这类写法——既无意义又易出错
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











