修复(会员补差): ceil_div 零分母不再静默返回 0

- 删除 denominator == 0 时的静默 0 元兜底,保留 debug_assert 并在 release 下除零 panic
- 与函数注释「零分母属程序员错误,应立刻暴露」保持一致,避免潜在少收金额
This commit is contained in:
2026-10-05 18:15:36 +08:00
parent b8309eb3ae
commit e90929057c
@@ -237,12 +237,10 @@ pub fn check_expired_membership_upgrade_settlement(
/// 向上取整的整数除法(金额取整到分)。
///
/// 分母是 `MONTHS_PER_YEAR * REMAINING_RATIO_PPM` 这类编译期常量,恒不为 0;
/// 零分母属程序员错误,`debug_assert` 让它在测试里立刻暴露,而不是被静默算成 0 元。
/// 零分母属程序员错误,`debug_assert` 让它在测试里立刻暴露,release 下除零 panic,
/// 而不是被静默算成 0 元。
fn ceil_div(numerator: u128, denominator: u128) -> u64 {
debug_assert!(denominator != 0, "ceil_div 的分母不能为 0");
if denominator == 0 {
return 0;
}
((numerator + denominator - 1) / denominator) as u64
}