一起旅行、聚餐、合租时,记下「谁付了多少、由谁一起分摊」,自动算出最后谁该还谁多少钱, 并给出转账笔数最少的还款方案。纯前端、零依赖、双击即用,数据存在本地。
- 👥 添加成员,双击名字可重命名(所有账目自动同步)
- 🧾 记录每笔支出:花在哪、谁付的、多少钱、由谁分摊(可只选部分人)
- ⚖️ 自动结算:算出每个人是「应收回」还是「需支出」
- 💡 最省事还款方案:用贪心算法合并债务,让转账次数尽量少
- 📋 一键复制结算文本:直接发到群里通知大家
- 🧹 一键清空:一段旅程结清后开始下一趟
- 💾 自动保存,下次打开还在
双击 index.html 打开。① 添加至少 2 个人 → ② 一笔笔记账 → ④ 底部自动显示结算结果。
- 核心逻辑只有两步:
- 算出每个人的净余额 = 他垫付的钱 − 他该分摊的钱(正数=别人欠他)。
- 把欠钱的人和该收钱的人两两抵消,得到最少的转账方案。
- 用
Math.round(x*100)/100处理金额,避免小数点的浮点误差。 - 数据存在浏览器
localStorage里,不联网、不上传。
核心结算算法抽在 settlement.js(纯函数),用 Node 内置测试框架覆盖,无需安装任何依赖:
node --test test_settlement.js每次 push 时 GitHub Actions 会自动在 Node 18/20/22 上跑测试。
详见 CHANGELOG.md。
MIT
