Skip to content

Repository files navigation

💸 费用分摊器 Expense Splitter

测试 License: MIT No deps

一起旅行、聚餐、合租时,记下「谁付了多少、由谁一起分摊」,自动算出最后谁该还谁多少钱, 并给出转账笔数最少的还款方案。纯前端、零依赖、双击即用,数据存在本地。

截图

✨ 功能

  • 👥 添加成员,双击名字可重命名(所有账目自动同步)
  • 🧾 记录每笔支出:花在哪、谁付的、多少钱、由谁分摊(可只选部分人)
  • ⚖️ 自动结算:算出每个人是「应收回」还是「需支出」
  • 💡 最省事还款方案:用贪心算法合并债务,让转账次数尽量少
  • 📋 一键复制结算文本:直接发到群里通知大家
  • 🧹 一键清空:一段旅程结清后开始下一趟
  • 💾 自动保存,下次打开还在

🚀 使用

双击 index.html 打开。① 添加至少 2 个人 → ② 一笔笔记账 → ④ 底部自动显示结算结果。

🛠 技术说明(给好奇的你)

  • 核心逻辑只有两步:
    1. 算出每个人的净余额 = 他垫付的钱 − 他该分摊的钱(正数=别人欠他)。
    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

About

💸 多人费用分摊计算器,自动算出谁该还谁多少

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages