修复(会员补差): ceil_div 零分母不再静默返回 0
- 删除 denominator == 0 时的静默 0 元兜底,保留 debug_assert 并在 release 下除零 panic - 与函数注释「零分母属程序员错误,应立刻暴露」保持一致,避免潜在少收金额
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user