燃油成本计算器

三个输入框:行驶距离、百公里油耗、油品单价。输出每公里油费、每百公里油费、本次加油钱与一年燃油支出。核心口径是每公里油费 = 百公里油耗 ÷ 100 × 单价——它只随油价和油耗变,跟你跑多远无关,所以能直接横向比两台车。

默认 520:一次自驾往返的量级
默认 7.2:紧凑型轿车市区工况
默认 7.68:92# 汽油的常见挂牌价量级
默认 12000:一年一万二千公里约合每天 33 公里
每公里油费(本页默认参数,D=520km / 7.2 L/100km / 7.68 元/L)
每公里油耗 = 7.2 ÷ 100 = 0.072 L/km
每公里油费 = 0.072 × 7.68 = 0.55296 元/km          ← 换车/换油品时唯一要看的数
每百公里油费 = 7.2 × 7.68 = 55.296 → 55.30 元
本次需加油量 = 520 × 7.2 ÷ 100 = 37.44 L
本次加油金额 = 37.44 × 7.68 = 287.5392 → 287.54 元

年化(按年行驶 12000 km)
年用油量 = 12000 × 0.072 = 864 L
年燃油支出 = 864 × 7.68 = 6635.52 元
月均燃油支出 = 6635.52 ÷ 12 = 552.96 元/月
日均燃油支出 = 6635.52 ÷ 365 = 18.18 元/天

换算到英制口径(加仑与英里都是国际标准精确值)
1 加仑 = 3.785411784 L;1 英里 = 1.609344 km
本次 37.44 L = 9.8906 加仑;本次 287.54 元 = 29.0720 元/加仑
油价 7.68 元/L = 2.0288 美元量级/加仑(÷ 3.785411784)
本车折算油耗 = 3.785411784 ÷ (1.609344 × 0.072) = 32.67 英里/加仑
55 L 油箱满箱可跑 = 55 ÷ 0.072 = 763.89 km

敏感度(每公里油费 = 0.072 × 单价)
油价每涨 0.1 元/L → 每公里 +0.0072 元 → 本次 520km 多花 3.74 元 → 一年多花 86.40 元
油耗每降 0.1 L/100km → 每公里 −0.00768 元 → 一年少花 92.16 元

(以上为服务端直出的演示值;改动任一输入框或点「计算燃油成本」会用你填的数覆盖)
以上数字全部由 Math.round(x×10ⁿ)/10ⁿ 计算,不使用 toFixed()

里程梯度对照(24 行,默认 7.2 L/100km × 7.68 元/L)

距离 km需加油量 L加油金额 元每公里 元/km折合 mpg占比
503.6027.650.5529632.67市区接送
1007.2055.300.5529632.67每周通勤
15010.8082.940.5529632.67单程高速
20014.40110.590.5529632.67周末周边
30021.60165.890.5529632.67省内一趟
40028.80221.180.5529632.67跨市往返
50036.00276.480.5529632.67一次自驾环线
60043.20331.780.5529632.67高铁替代临界
80057.60442.370.5529632.67跨省往返
100072.00552.960.5529632.67长途自驾单程
120086.40663.550.5529632.67春节返乡
1500108.00829.440.5529632.67含一次长途
2000144.001105.920.5529632.67年里程量级
2500180.001382.400.5529632.67跑出租的日均
3000216.001658.880.5529632.67长途车单程
4000288.002211.840.5529632.67长三角往返
5000360.002764.800.5529632.67一次新疆环线
6000432.003317.760.5529632.67成渝双向往返
8000576.004423.680.5529632.67西部自驾
10000720.005529.600.5529632.67长途货运里程
12000864.006635.520.5529632.67本组默认年里程
150001080.008294.400.5529632.67网约车高强度
180001296.009953.280.5529632.67全年跑满
200001440.0011059.200.5529632.67本页上限

使用方法

  1. 在「行驶距离」填本次要跑的总公里数(示例 520),在「百公里油耗」填仪表或维保记录上的那个数(示例 7.2),在「油品单价」填你实际加油的小票单价(示例 7.68)。三个框都有默认示例值,打开即算。
  2. 「年行驶里程」(示例 12000)只影响年化那一组,不影响本次金额;填 0 表示你不想看年化,本页会跳过而不是报错。
  3. 点「计算燃油成本」或直接裸按 Enter(四个都是单行输入框,Enter 没有别的语义)。改动任意一格也会实时重算。上面六张结果卡给的是每公里油费、每百公里油费、本次加油钱、年燃油支出、月均支出、满箱续航。
  4. 下方 24 行里程梯度表会跟着你填的油耗和单价重算——每公里那一列永远相同,因为它是 油耗 ÷ 100 × 单价;变的是「需加油量」和「加油金额」两列。点「加载更多」展开后 12 行。
  5. 结果区可以整段复制,也可以只把对照表带走:「导出对照表 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),用公里每升转升每百公里更快。

原理:每公里油费怎么算,以及为什么它是唯一不随距离变的量

本调用的具体函数与算式只有一条链,共三次乘法、两次除法:

为什么「每公里油费」是本页的主指标,参数怎么取。因为 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 行(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典型场景
503.6027.650.5529632.67市区接送,10 升油
1007.2055.300.5529632.67每周通勤,15 升油
20014.40110.590.5529632.67周末周边,一箱油不到半箱
30021.60165.890.5529632.67省内一趟,约 3 箱油
50036.00276.480.5529632.67一次自驾环线,接近满箱
80057.60442.370.5529632.67跨省往返,要中途加油
100072.00552.960.5529632.67长途自驾单程,1.2 倍油箱
120086.40663.550.5529632.67春节返乡往返
2000144.001105.920.5529632.67网约车双倍工时
3000216.001658.880.5529632.67长途货运单程
5000360.002764.800.5529632.67一次西部环线
12000864.006635.520.5529632.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」与之同类但基于你的油耗参数而非油箱容量。
  • 行程成本计算器:算单次行程的综合出行成本(含路桥、过路等分摊口径),本页只负责其中的燃油这一项。
  • 电费成本计算器:电动车同一逻辑的电动版本,参数是电价与电耗;本页的公式结构与它对称,可以对照看。
  • 用车总成本计算器:把本页的每公里油费与折旧、保险、保养、轮胎合并,算真正的持有成本。
  • 健康体重范围计算器:同样是「查表 + 边界 + 标准引用」型小工具,精度处理思路与本页一致。
  • 计算器:查看全部计算器工具。