🧰 UtlKit

小费计算器怎么用: 从账单金额, 比例和人数算出小费, 总额和人均分摊, 在浏览器

三个输入: 账单金额, 带 10/15/18/20/25 预设的小费比例和人数, 得出小费, 总额和人均均摊, 全部在浏览器内计算, 以美元打印.

小费计算器接收三个输入: 账单金额, 小费比例和人数, 打印小费金额, 总额, 以及人数大于 1 时的人均总额和人均小费. 每个数字都由浏览器内从这三个数字直接算出, 没有后端, 没有 API 调用, 所有金额都带美元符号打印. 从小费计算器开始, 用默认值: 账单输入 42.50, 保持 18% 预设, 人数设为 2.

三个输入

账单是唯一必需的输入, 且必须大于 0: 空, 0 或负数的账单不显示任何结果. 小费比例默认 15, 预设按钮 10, 15, 18, 20, 25 填写该字段, 自定义输入接受小数, 22.5 也可以, 所以 0.5 的步长是建议而不是限制; 空的比例按 0 读. 人数字段默认 1, 空或 0 的值也变成 1, 因为代码把任何缺失或为零的人数替换成 1, 而不是除以 0.

算术

四个运算完成全部工作. 小费是账单乘以比例除以 100, 总额是账单加小费, 两个人均数字是总额和小费各自除以人数. 不再跟踪别的东西: 没有税项, 没有服务费, 没有菜单级分解. 人均单元格只在人数大于 1 时出现; 一个人的账单只看到小费和总额.

显示值与一美分余额

每个单元格用 toFixed(2) 打印, 对该单元格自己的精确值取整, 所以单元格之间不必凑整. 这个运行例子, 42.50 按 18% 两人分摊, 打印小费 7.65, 总额 50.15, 每人 25.07, 每人小费 3.82. 人均数字是关键: 50.15 除以 2 是 25.075, 但这个数在二进制里比 25.075 略小, 所以向下取整成 25.07; 小费份额 3.825 存储时比 3.825 略小, 取整成 3.82. 把打印的 25.07 乘 2 得 50.14, 比打印的总额少一美分. 100 按 15% 三人分摊同样发生: 每人 38.33, 3 乘 38.33 是 114.99, 不是 115.00. 工具打印数字, 最后一美分谁出由桌上的人决定.

货币符号

结果单元格在所有语言页面都硬编码美元符号, 所以按欧元输入的账单仍按美元打印. 唯一本地化的部分是账单标签: 英语页面读作 Bill Amount $, 西语, 葡语, 法语和德语页面同样带美元符号, 中文页面的标签带 ¥ 符号, 日语标签则完全不带货币符号. 工具不做货币换算: 要分摊外币账单, 先用货币转换器(手动汇率)换算账单, 再输入换算后的金额.

它不是什么

小费计算器不是百分比工具: 任意数字的任意百分比, 用百分比计算器, 双向百分比问题见百分比指南. 它也不是折扣计算器: 账单上打折后的价格一侧, 折扣计算器算出折后价和节省金额. 它也不对小费本身做取整: 没有向上取整到整美元的选项, 没有服务费栏, 没有税输入.

相关工具

常见问题

账单按税前还是税后输入?

工具不知道也不关心: 它把你输入的数字乘以比例. 想按税后总额给小费, 自己加上税, 把那个和作为账单输入.

为什么 42.50 按 18% 两人分摊显示每人 25.07 而不是 25.08?

每个单元格用 toFixed(2) 对自己精确值取整. 50.15 除以 2 是 25.075, 但二进制里这个值比 25.075 略小, 所以向下取整成 25.07. 小费份额同形: 3.825 存储时略小于 3.825, 取整成 3.82.

为什么人均金额加起来不等于总额?

因为每个单元格独立取整, 余数从不重新分配. 100 按 15% 三人分摊打印每人 38.33, 3 乘 38.33 是 114.99, 比打印的 115.00 少一美分. 工具显示分摊, 最后一美分谁付由桌上的人决定.

可以按自定义金额分摊而不是按人头均分吗?

不行. 人数字段是计数, 两个人均数字总是总额和小费除以该计数. 没有按人覆盖, 没有不均分摊, 人数下限就是 1: 空和 0 都变成 1.

它加税, 服务费, 或把小费向上取整到整美元吗?

不. 唯一的算术是账单的百分比, 加上它, 除以人数. 税项, 按总额计的小费, 向上取整惯例都不在模型里, 页面上没有其他字段.

相关文章