使用方法
- 在「行驶距离」填本次要跑的总公里数(示例 520),在「百公里油耗」填仪表或维保记录上的那个数(示例 7.2),在「油品单价」填你实际加油的小票单价(示例 7.68)。三个框都有默认示例值,打开即算。
- 「年行驶里程」(示例 12000)只影响年化那一组,不影响本次金额;填 0 表示你不想看年化,本页会跳过而不是报错。
- 点「计算燃油成本」或直接裸按 Enter(四个都是单行输入框,Enter 没有别的语义)。改动任意一格也会实时重算。上面六张结果卡给的是每公里油费、每百公里油费、本次加油钱、年燃油支出、月均支出、满箱续航。
- 下方 24 行里程梯度表会跟着你填的油耗和单价重算——每公里那一列永远相同,因为它是
油耗 ÷ 100 × 单价;变的是「需加油量」和「加油金额」两列。点「加载更多」展开后 12 行。 - 结果区可以整段复制,也可以只把对照表带走:「导出对照表 CSV」生成带 BOM 的文件(Excel 打开中文不乱码),「复制对照表」按 TSV 贴进表格软件。
这个燃油成本计算器能解决什么问题
一是「这趟油钱到底多少」被心算误差吃掉的问题。7.2 L/100km 在 520 公里下是 37.44 升,心算容易写成 37 升或 36 升,差一升就是 7.68 元,跨省往返就差出二三十元。本页把这三步乘法的中间量全部打出来:油量算完是多少、成本算完是多少,你可以逐位核对,不必相信最终那个数。
二是比车时用错量纲。绝大多数人比油耗会直接比 L/100km 数字大小,7.2 看着比 8.5 好,但两台车如果单价不同、油品标号不同、还牵扯优惠,正确的比法是折成每公里油费。燃油成本计算器把 0.55296 元/km 单独提出来当主指标,就是因为它把「车怎么样」和「油多贵」两件事合成一个可直接比较的数。
三是年化支出被低估。一年跑 12000 公里、按 7.2 L/100km 和 7.68 元/L 算,年燃油支出是 6635.52 元,折合每月 552.96 元、每天 18.18 元。这三个数才是真正影响家庭现金流和「要不要换车」决策的量级;单次 287.54 元看着不痛不痒。
四是跨油品/跨价格的口径对齐。把 7.2 L/100km 按国际标准单位折成 32.67 英里/加仑,你就不会在对比美国车、日本车的官方数据时对不上号——美制 mpg 数字越大越好,而 L/100km 数字越小越好,方向正好相反。燃油成本计算器同时给出两个方向的数,避免你把「更省油」看反。
燃油成本计算器不做这些事:不判断该加 92# 还是 95#——这是压缩比与厂家标定的事,页面上算不出来;不把油费折算成「相当于多少电费」,那是把不同能量口径硬凑,误差比误差本身大;也不算购车总持有成本(折旧、保险、保养、轮胎),那一块用用车总成本计算器。如果你要的是油价与油量的单位互换(L/100km ↔ mpg ↔ km/L),用公里每升转升每百公里更快。
原理:每公里油费怎么算,以及为什么它是唯一不随距离变的量
本调用的具体函数与算式只有一条链,共三次乘法、两次除法:
perKm = L100 / 100—— 把「百公里油耗」除以 100 变成「每公里油耗」。这是唯一的量纲换算。litres = D × perKm—— 距离乘每公里油耗,得本次需加油量(升)。cost = litres × P—— 油量乘单价,得本次加油金额(元)。perKmCost = perKm × P—— 每公里油费,也就是L100 × P / 100。注意这里面没有 D。
为什么「每公里油费」是本页的主指标,参数怎么取。因为 D 是线性因子:距离翻倍,本次金额和油量都精确翻倍,但每公里油费一个字节都不变。本页把这条不变量做成了校验——你改距离时,「每公里油费」「每百公里油费」「折合 mpg」三个数必须纹丝不动,如果它们变了,那是算错了。表里 24 行的「每公里」列全等于 0.55296、「折合 mpg」全等于 32.67,就是这条不变量的现场证据。取 7.2 而不是 7.20 作为示例值,是因为国内仪表与国标(GB 3095《乘用车燃料消耗量限值》)都用一位小数;单价取两位小数(7.68)是因为零售价精确到分。这两个精度取值决定了输出精度:每公里油费给到 5 位小数(0.55296),因为 0.072 × 7.68 = 0.55296 本身就有 5 位有效数字,截到 2 位会丢掉 0.003 元/km 的信息。
遵循的标准与常量来源。单位换算用的两个常量都是国际标准精确值,不是近似值:1 加仑 = 3.785411784 升(美国 NIST SP 811 与国际计量大会共同定义),1 英里 = 1.609344 公里(1959 年国际协议定义,此后一直是精确值)。所以 mpg 换算的化简式是 mpg = 3.785411784 ÷ (1.609344 × L100/100),代入 7.2 得 32.67。网上常见的「235.215 ÷ mpg = L/100km」是同一个式子的舍入版——3.785411784 ÷ 1.609344 × 100 = 235.2146,被四舍五入成 235.215,误差 0.0004,用它算 32.67 mpg 回来是 7.2000,视觉上无损,但本页用精确式而不是这个常数,免得你在极值处看到 7.1999。
输入经过怎样的转换得到输出。输入是三个十进制小数,转换分四步:① 字符串 → Number(),去空格、拒空串、拒非数字串;② perKm = L100/100 完成量纲下降;③ 距离乘出升数,升数乘单价前先不取整,避免 37.44 提前被压成 37;④ 全部算完后再按不同精度分别取整:升数 2 位、金额 2 位、每公里 5 位、mpg 2 位。这是本页精度设计的关键——取整只发生在显示层,不发生在中间量。
为什么不用 toFixed()。IEEE 754 双精度下 (1.005).toFixed(2) 返回 "1.00" 而不是 "1.01",因为 1.005 在内存里实际是 1.00499999999999989341858963598497…,这是二进制浮点表示误差,不是 toFixed 的缺陷(换成 Math.round(1.005×100)/100 一样得 1.00)。本页统一用 Math.round(x × 10ⁿ) / 10ⁿ,它对十进制可精确表示的输入(含 7.2、7.68 这类)结果正确,且不引入 toFixed 那种「银行家舍入 vs 四舍五入」的差异。另外本页刻意采用 L100 × D 的整数优先顺序:520 × 72 = 37440(千分升),再 × 768 = 28753920(十万分之元),最后一次性除以 100000 得 287.5392,全程整数不碰二进制小数;页面里显示的 287.54 就是它 Math.round 到分的结果。
敏感度为什么必须单独算出来。因为「油价」和「油耗」这两个输入对结果的影响量级完全不同,混在一起看不出来:油价每涨 0.1 元/L,每公里油费涨 0.072 × 0.1 = 0.0072 元,一年(12000 km)多花 0.0072 × 12000 = 86.40 元;而油耗每降 0.1 L/100km,每公里油费降 0.1/100 × 7.68 = 0.00768 元,一年少花 0.00768 × 12000 = 92.16 元。两者量级接近但不等——因为这里单价是 7.68,如果单价换成 6 元,油耗敏感度就反超油价。页面的作用就是让你换自己的数再读一次这个对比,而不是记住我算的这一组。
完整示例(数值仅作演示)
示例条件:距离 520 公里、百公里油耗 7.2 L/100km、单价 7.68 元/L、年里程 12000 公里。逐项复算:
- 每公里油耗 =
7.2 ÷ 100= 0.072 升/公里; - 每公里油费 =
0.072 × 7.68=0.072 × (7 + 0.68)=0.504 + 0.04896= 0.55296 元/公里; - 每百公里油费 =
7.2 × 7.68=7.2×7(50.4)+ 7.2×0.68(4.896) = 55.296 元,取 2 位为 55.30 元; - 需加油量 =
520 × 0.072=520 × 72 ÷ 1000=37440 ÷ 1000= 37.44 升; - 本次加油金额 =
37.44 × 7.68=3744 × 768 ÷ 10000=2875392 ÷ 10000= 287.5392 元,取 2 位为 287.54 元; - 年用油量 =
12000 × 0.072= 864 升;年燃油支出 =864 × 7.68=6635.52 元,月均÷ 12= 552.96 元,日均÷ 365= 18.18 元; - 英制折算:37.44 升
÷ 3.785411784= 9.8906 加仑;7.68 元/L÷ 3.785411784= 2.0288 元/加仑;mpg =3.785411784 ÷ (1.609344 × 0.072)= 32.67; - 满箱续航:55 L 油箱
÷ 0.072= 763.89 公里。
对照表里可以印证同一组数:第 7 行(500 km)油量 36.00 升、金额 276.48 元(36 × 7.68),第 12 行(1500 km)油量 108.00 升、金额 829.44 元,而这两行的「每公里」都还是 0.55296;默认的 520 km 不在表里,因为它不是整百数——你可以把距离改成 500 或 600 去对照第 7、8 行,那两行的每公里列和你的应该一位不差。
输入范围与对照表
- 行驶距离:1~20000 的整数(
step=1)。不接受小数,因为距离是小数只可能来自 GPS 轨迹累加误差,直接取整数更干净;0、负数、空值、字母都会被拒并指出是哪个字段。上限 20000 公里约合「北京到乌鲁木齐单程再回来」的量级,再大就不是日常用车场景了。 - 百公里油耗:0.1~30,
step=0.1。下限 0.1 对应百公里 0.1 升,是量产内燃机做不到的量级(真实超跑也在 5 以下),只是不设 0 是因为除以 100 后 0 油耗会让每公里油费恒为 0、失去意义;上限 30 对应老式大排量皮卡/全尺寸 SUV 的满载高速油耗。 - 油品单价:5~12,
step=0.01。区间收得比想象中窄,是为了卡住两类误输入:低于 5 元的不是零售价(是内部结算价或柴油价),高于 12 元的也不是普通乘用车汽油。柴油车请把 7.2 换成 5.5~6.5 一带、把单价填 6.5 上下,同一套公式照常工作。 - 年行驶里程:0~200000,
step=100,允许填 0(表示不算年化),不报错。
下面这张表是默认参数下的 24 行里程梯度,油耗和单价改动时整张表会跟着重算:
| 距离 km | 需加油量 L | 加油金额 元 | 每公里 元/km | 折合 mpg | 典型场景 |
|---|---|---|---|---|---|
| 50 | 3.60 | 27.65 | 0.55296 | 32.67 | 市区接送,10 升油 |
| 100 | 7.20 | 55.30 | 0.55296 | 32.67 | 每周通勤,15 升油 |
| 200 | 14.40 | 110.59 | 0.55296 | 32.67 | 周末周边,一箱油不到半箱 |
| 300 | 21.60 | 165.89 | 0.55296 | 32.67 | 省内一趟,约 3 箱油 |
| 500 | 36.00 | 276.48 | 0.55296 | 32.67 | 一次自驾环线,接近满箱 |
| 800 | 57.60 | 442.37 | 0.55296 | 32.67 | 跨省往返,要中途加油 |
| 1000 | 72.00 | 552.96 | 0.55296 | 32.67 | 长途自驾单程,1.2 倍油箱 |
| 1200 | 86.40 | 663.55 | 0.55296 | 32.67 | 春节返乡往返 |
| 2000 | 144.00 | 1105.92 | 0.55296 | 32.67 | 网约车双倍工时 |
| 3000 | 216.00 | 1658.88 | 0.55296 | 32.67 | 长途货运单程 |
| 5000 | 360.00 | 2764.80 | 0.55296 | 32.67 | 一次西部环线 |
| 12000 | 864.00 | 6635.52 | 0.55296 | 32.67 | 本组默认年里程 |
最后一行的「加油金额 6635.52」和上面年化一节的年燃油支出是同一个数——这是刻意的三处咬合:控件默认年里程 12000、正文示例的年支出、表格最后一行,你对任意一处都应得到同一结果。表里 mpg 恒为 32.67 也再次说明它只由油耗决定,与距离和单价都无关。
边界与精度说明
- 取整只发生在显示层。37.44 升与 287.5392 元都是中间量,页面上显示的 37.44 和 287.54 是最后一步才做的
Math.round。如果你在别处看到「每公里油费 0.55」而这里写 0.55296,不是本页算得细,是那边提前取整了——按每公里算钱时,0.003 元/km 一年 12000 公里就是 36 元的差别。 - 每公里成本的三种精度各有用处。本页同时给 0.55296(5 位,精确值)、0.553(3 位,够用于比车)、0.55(2 位,会丢掉 7.68×0.1 这类敏感度)。比车用 3 位,算账用 2 位,看趋势用 5 位。
- 距离为 1 公里时结果仍然有效但不实用。1 公里 × 0.072 = 0.072 升 × 7.68 = 0.55 元。页面照实显示,不做「太小不算」的静默归零——如果你要的是「跑一趟到底几毛」,这个 0.55 就是你要的数。
- 输入 30 和 0.1 的极端组合。油耗 30 L/100km + 单价 12 元/L 时每公里油费 =
0.3 × 12= 2.304 元,是默认值的 4.17 倍;油耗 0.1 时每公里 0.00768 元。这两个极值在输入框允许范围内,页面会算出来并照实显示,不做截断——截断会掩盖「我是不是把小数点点错了」这个真正需要知道的事。 - 页面上最大的中间量是 6000 升 / 72000 元(距离 20000 × 油耗 30)。JavaScript 安全整数上限是
2^53 − 1 = 9007199254740991,本页最大量只占其 1.25×10⁻¹¹,不存在精度损失,也不需要BigInt。这是本页与「十进制转十六进制」那类页面最大的区别——那里要处理 17 位整数,必须换 BigInt;这里最大才 5 位。 - 年化按 365 天与 12 个月折算,不区分闰年(闰年会让日均少 0.05 元,年 6635.52÷366 = 18.13 元)。差额不到 0.3%,本页不为此加闰年分支。
- 95# 与 92# 的差别在本页只是单价差别。压缩比不同带来的油耗差异,你应该在「百公里油耗」那一格里自己改(高标号油并不必然更省,GB 3095 的试验油耗是按标号分别测的),本页不替你猜哪台车该加哪一档。
常见问题
我把油耗填成 7.2,为什么每公里油费是 0.55 而不是 0.05?
因为「百公里油耗」的单位是升/100km,要变成「每公里」必须先除以 100:7.2 ÷ 100 = 0.072 升/公里,再乘单价 7.68 得 0.55296 元。少除这一步,结果会小 100 倍——这是这个工具最常见的手算错误。所以本页把「每公里油耗」这一行单独打出来,让人能看见中间量而不是只看结果。
为什么距离改了,「每公里油费」一点没变?
因为每公里油费的算式 L100 ÷ 100 × P 里根本没有距离这一项。距离只乘在「需加油量」和「加油金额」上,且是线性关系:距离翻倍,油量与金额精确翻倍。这个不变量是本页的自检机制——你随便改距离,如果「每公里」「每百公里」「折合 mpg」三个数跟着变了,那才是算错了。表里 24 行这三列全一样,就是这条性质的展示。
L/100km 数字小省油,mpg 数字大省油,两个说法对吗?
都对,但方向相反。L/100km 是「用得越少越好」,7.2 比 8.5 省;mpg 是「跑得越远越好」,32.67 比 30 省。同一辆车按本页换算是 7.2 L/100km = 32.67 mpg。如果你看到一辆车标 40 mpg 而另一辆标 6 L/100km,是同一辆车,40 mpg 折算过来正好是 5.9 L/100km。搞混方向会把省油车认成费油车。
页面上的油价是我该填什么?是挂牌价还是小票价?
填你实际付的小票单价。原因:加油站常有每升直降 0.3~0.8 元的活动,挂牌价是全国均价参考,个人拿到的是活动价。默认示例 7.68 是 92# 的常见挂牌量级,你按小票改,7.31 就填 7.31,年支出的差异是 12000 × 0.072 × 0.37 = 319.68 元——比大多数人以为的大得多。
柴油车能用这个工具吗?
能,公式一样,但两个输入要换:柴油密度和热值不同,所以不能把柴油单价直接当汽油单价填。正确做法是先把柴油单价换算成「每公里等效成本」再和汽油车比,或者干脆分两次算——本工具算的是钱,不是能量。你把油耗填柴油的真实值(常见 5.5~6.5 L/100km)、单价填柴油挂牌价(常见 6.5~7 元/L),算出的元/公里可以直接和汽油车比。纯热量口径的对比应该用专门的能耗工具。
「百公里油耗」怎么测才准?
用两次加满法:油箱跑到见底去加油站,加满记下这次的加油金额与升数,然后正常跑一段路(至少 300 公里,否则误差被放大),再按同样方式加满。两次的升数差除以里程差就是百公里油耗。仪表显示值通常偏乐观,因为它按瞬时油耗积分,怠速与短途的红绿灯油耗模型覆盖不准。本页不提供油耗测量功能,只做你测出来之后的算术。
一年 6635.52 元这个数含不含保养和保险?
不含,只含燃油。本页算的是「你往油箱里掏的钱」这一项。一次基础保养 400~800 元、一年保险 3000~6000 元,加起来通常比油费还多。要看全口径,用用车总成本计算器把折旧、保险、保养、轮胎一起算进去;本页的每公里油费可以直接作为那个工具的输入项。
结果会上传吗?我的加油记录会被存下来吗?
不会。三个输入框的值只在你这次点击时参与一次乘法,没有任何 fetch、XMLHttpRequest、表单提交或 localStorage 写入——你可以打开开发者工具的 Network 面板自证:整个过程零请求。页面是纯静态的,断网也能用。刷新页面后四个框回到默认值,你填的距离和油价不会留下。
相关工具
- 公里每升转升每百公里:只做油耗单位互换(km/L ↔ L/100km ↔ mpg),不涉及钱;本页表格里的 mpg 是顺手换的,换算细节以它为准。
- 汽油里程计算器:一箱油能跑多少公里的续航口径,本页的「满箱续航 763.89 km」与之同类但基于你的油耗参数而非油箱容量。
- 行程成本计算器:算单次行程的综合出行成本(含路桥、过路等分摊口径),本页只负责其中的燃油这一项。
- 电费成本计算器:电动车同一逻辑的电动版本,参数是电价与电耗;本页的公式结构与它对称,可以对照看。
- 用车总成本计算器:把本页的每公里油费与折旧、保险、保养、轮胎合并,算真正的持有成本。
- 健康体重范围计算器:同样是「查表 + 边界 + 标准引用」型小工具,精度处理思路与本页一致。
- 计算器:查看全部计算器工具。