From e90929057c644f595fa4d528ed302c09c8724c60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Mon, 5 Oct 2026 18:15:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D(=E4=BC=9A=E5=91=98=E8=A1=A5?= =?UTF-8?q?=E5=B7=AE):=20ceil=5Fdiv=20=E9=9B=B6=E5=88=86=E6=AF=8D=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E9=9D=99=E9=BB=98=E8=BF=94=E5=9B=9E=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 删除 denominator == 0 时的静默 0 元兜底,保留 debug_assert 并在 release 下除零 panic - 与函数注释「零分母属程序员错误,应立刻暴露」保持一致,避免潜在少收金额 --- server-rs/crates/module-runtime/src/membership/upgrade.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/server-rs/crates/module-runtime/src/membership/upgrade.rs b/server-rs/crates/module-runtime/src/membership/upgrade.rs index 64a9ae25a..3a6786325 100644 --- a/server-rs/crates/module-runtime/src/membership/upgrade.rs +++ b/server-rs/crates/module-runtime/src/membership/upgrade.rs @@ -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 }