全程以「分」为单位的整数运算 —— 明细合计 恒等于 订单实付,永不出 0.01 尾差。
拼单群里最容易吵架的就是「优惠怎么分」。这里把它显式化成口径选项,而不是争议点。
同一张单,换口径各人应付差多少?
✓ 表示该人在此口径下最省。三种口径的合计永远相同 —— 换的只是「怎么分」。
生成的分账单可直接粘贴到群里,格式与 split_bill.py --markdown 一致。
3 个人均摊 ¥10.00,每人 3.333… 元。四舍五入到分,三个人加起来只有 ¥9.99 —— 少了 1 分。这 1 分总得有人出,于是群里开始扯皮。
Σ(每人应付) ≡ 订单实付,一分不差。如果一张券的面额超过了某人的商品原价,按比例分给他会出现负数应付。这里用「注水法」:谁先触顶就把他的额度锁死,剩余优惠由其余人继续按比例分,直到分完。
本页算法与仓库里 skills/mcd-group-order/scripts/split_bill.py 的 allocate() / allocate_capped() 逐行对齐,纯前端确定性整数运算,无后端、无网络请求、不上传任何数据。所有金额只在你的浏览器里算。