piapia123
zh

单价比较(比价计算器)

转换

所有处理都在浏览器本地完成,数据不上传服务器

输入
把文件拖到这里可直接载入
输出

每行写「名称 价格 数量」,例如 `大瓶 19.9 1000`。右边把每一行换算成每单位多少钱,从低到高排序,并标出最划算的那条、以及其余各条贵了百分之多少。 比价最容易犯的错是拿总价比总价。 大包装看着贵,但它装得多 —— 所以这个工具的输出是「每单位价格」,不是总价。把它单独排成一列之后,哪条划算就是一眼的事,不需要心算除法。 「贵 12%」比「19.9 与 22.5」有用得多。 两个绝对数字要自己去比,而百分比直接告诉你值不值得为换个规格多走两步路。 折扣是一个选项,不是另一种输入格式。 「打 8 折之后哪个划算」是同一个问题的变体,所以折扣做成一个选项(把每行价格先乘一遍)—— 另开一套输入格式的话,「我这一行该写折前价还是折后价」会变成一个没人答得上来的问题。 ⚠️ 满减不在这里。 「满 200 减 30」要看你总共买多少,而单价比较的前提是各行互相独立。把满减硬塞进来会得到一个看着精确、其实取决于「你买几件」的数字 —— 那正是这个工具不该说的话。 ⚠️ 一行写错不会让整张表消失。 读不懂的行会被单独列出来并说明格式,其余各条照常计算 —— 比价的时候,为了一行笔误让全部结果消失是最糟的处理。

功能

  • ⚠️ 数量可以带单位:`500g` 与 `1kg` 会先归一化再比 —— 不换算的话「大包装贵」的结论是反的
  • 中英文单位都认(g/kg/ml/L/MB/GB/片/克/毫升/升…),只在同一量纲内换算(克与毫升不混)
  • ⚠️ 单位写得不一致时(有的带有的不带)不猜,按数字比并明确警告 —— 猜错方向结论就反了
  • 按单价排序(不是总价),最划算的那条自动标出
  • 其余各条给出贵百分之多少,比看两个绝对数字快得多
  • 可选折扣,把每行价格先折算一遍(排序不变)
  • 填了单位名之后多给一栏「每 100 单位」—— 0.0199 与 0.0396 要数小数点,1.99 与 3.96 一眼就看出来
  • 名称里可以有空格(判据是「末两个数是价格与数量」)
  • 认空格、逗号与制表符,可以直接从表格里粘
  • 一行写错只影响那一行,其余照常计算,并说明是哪一行、哪里不对
  • 结论写在结果里(复制出去也带着),不只是屏幕上的颜色
  • 全程本机计算,价格不上传

使用方法

  1. 每行写「名称 价格 数量」(名称可省略,可含空格)
  2. 右边立刻按单价排序并标出最划算的那条
  3. 有折扣就填折扣,单位不同就填单位名
  4. 按需要切换排序方式(比如换回输入顺序对着原清单核)

常见问题

数量要填什么单位?
填同一套单位下的数量就行 —— 要比较的几行必须是同一种东西、同一个单位。比如都是「毫升」,`500ml 与 1L` 就得写成 `500` 与 `1000`;一个写毫升一个写升的话,算出来的单价没有可比性,而结果看上去完全正常。单位名称那一栏只是用来把结果显示成「每 1 毫升」这样的措辞,不影响计算。
为什么有 0 元的东西时,其他条目不给百分比?
因为那一条的最低价是 0,而「除以 0 再减 1」算不出百分比。更要紧的是:如果用「百分比为 0」当判据,整张表会被一起标成「最划算」—— 一个自相矛盾的结论。所以 0 元(赠品、积分兑换)出现时,只有它标「最划算」,其余条目不报百分比。
打了折之后排序会变吗?
不会。折扣是把每一行的价格乘同一个系数,而单价的大小关系在乘同一个正数之后不变。所以折扣只改变单价的数值,不改变谁更划算 —— 这也正是它适合做成一个选项而不是另一套输入格式的原因。
满减(满 200 减 30)能用这个算吗?
不能,而且这个工具刻意不做。满减要看你总共买多少、怎么凑单,而单价比较的前提是各行互相独立。把满减塞进来的话,得到的是一个「在某个特定购买组合下」的数字,而它看起来会和单价一样精确 —— 用户没法从结果里看出这一点。要算满减,直接算总价与实付就行,那不需要比价。

相关工具