使用方法
- 先看方向下拉:默认停在「立方米 → 美制品脱」,单值框里已经有一个体积示例,结果区也不是空的。这是服务端直出的示例,脚本遵循「为空才填」,你改过的数字不会被覆盖。
- 算单个体积,改完单值框裸按 Enter 就出结果,点「换算」按钮等效;输入框限定为非负数值,填负数会收到具体提示。
- 算一批容量,在批量框每行写一个数值,按 Ctrl/Cmd + Enter,结果区逐行列出。空行会被略过,但任何一行写了文字或多个小数点,脚本会指出是第几行并停下。
- 想反过来,切到「美制品脱 → 立方米」:公式仍是同一条,只是把 from 与 to 对调,结果、对照表、完整示例同步重算,反向结果可拿系数复算。
- 结果可「复制结果」;对照表可展开余下 4 行,「导出对照表 CSV」下载带 BOM 的表格,「复制对照表 TSV」按制表符复制,粘进表格软件即可。
这个工具能解决什么问题
第一类是大容器与零售小包装之间的折算。储罐、水池、发酵罐的容积常以立方米记,而牛奶、啤酒、奶油、食用油在美制场景里按品脱卖。一立方米到底能装多少品脱,靠心算很容易差一位数,本页直接给出换算值,方便估产、配料与订货,这正是立方米转美制品脱要回答的问题。
第二类是消除一个翻译造成的方向性错误。英文 pint 是体积单位,机翻却把它当成重量「磅」,于是出现「立方米转磅」这样的说法,让人误以为要在体积与质量之间换算,进而去搬出密度、公斤、斤。本页把这串机翻原样保留一次,明确告诉你:品脱量的是体积,一立方米约合 2113.38 个美制液量品脱,与质量无关;真要算重量还得另给密度。
第三类是识别美制与英制不是同一个品脱。同样写「1 品脱」,美国食谱与英国食谱差了约两成,直接照搬会让液体配比偏掉。本页在对照表里专门加了一列英制品脱参照,让这个差值看得见,而不是只丢一句「注意区分」。
本页只处理立方米与美制液量品脱的双向换算,不涉及重量、不涉及密度换算,也不把美制干量品脱、英制加仑等一并列成全表;它只回答「这个体积合多少美制品脱」以及反过来。
计算原理:美制品脱、英制品脱与系数
统一公式仍是 out = in × f[from] / f[to]。本页把升当作中间量:f[m3] = 1000(1 立方米 = 1000 升),f[pt] = 0.473176473(1 个美制液量品脱的升数),另备 f[ukpt] = 0.568261(1 个英制品脱的升数)供参照列使用。乘 f[from] 换算成升,除 f[to] 换算成目标单位。
美制液量品脱从哪来。1 美制加仑严格等于 231 立方英寸,即 3.785411784 升;1 加仑分 8 品脱,所以 1 美制液量品脱 = 3.785411784 / 8 = 0.473176473 升。它是体积单位,和重量磅(pound,约 453.59237 克)没有任何量纲关系,机翻把 pint 译成「磅」属于望文生义。
英制品脱为什么更大。英制加仑是 4.54609 升,除以 8 得 1 英制品脱约 0.568261 升。把两者相除:0.568261 / 0.473176473 ≈ 1.2009494,也就是英制品脱比美制大约 20%。这个 20% 不是四舍五入误差,而是两套度量衡各自加仑定义不同造成的真实差距。
一立方米为什么是两千多个品脱。1 立方米 = 1000 升,除以 0.473176473 得约 2113.3764 个美制品脱;若按英制品脱除以 0.568261,则约 1759.75 个。同一个体积,用美制数出来更多、用英制数出来更少,正是那两成差距的体现。反向系数 f[pt]/f[m3] = 0.000473176473,即 1 个美制品脱只有约 0.000473 立方米。
还有几个容易混的同名单位。美国另有「干量品脱」约 0.5506 升,用于量干货,和液量品脱不同;品脱也都可再分成 2 杯、16 液量盎司。本页只按美制液量品脱计算,若你的数据来源写的是干量品脱或英制品脱,请先用对照表第三列核对口径再采用结果。
完整示例(默认输入实测)
单值框填 1,按「立方米 → 美制品脱」换算得 (计算中) US pt;填 2.5 得 (计算中) US pt。这两个值都由本页脚本用 out = in × f[m3] / f[pt] 现算,不是预先抄在页面里的结论;换个输入再触发,读数会立即跟着变,结果区与对照表里的同一行也始终一致。
切到「美制品脱 → 立方米」并输入 1,得到 (计算中) 立方米,可见一个品脱只占很小一份体积。把同一立方米按英制口径再算,是 (计算中) UK pt;两种品脱的比值约为 (计算中),也就是常说的「英制大约多两成」。
批量框默认的 0.5、1、2.5、10 四行按 Ctrl/Cmd + Enter 会一次列出四行结果,任意改一行只影响那一行。完整示例和对照表调用的是同一个换算函数,所以把 1 立方米填进单值框、或去看对照表里 1 那一行,读到的数字完全一致。
对照表与输入范围
- 单值输入:min 为 0、max 为 100000、step 为 0.000001。体积取非负,负数会被判为非法并写明原因;上限用于拦下明显脱离容器量级的输入。
- 对照表:覆盖 0.001 到 200 立方米的一组常用体积,前 12 行默认显示,另 4 行点「加载更多」展开。三列分别是输入、按当前方向换算的结果、同体积折成英制品脱的参照值。
- 第三列怎么算:先把当前输入折算回立方米,再除以英制品脱的升数得到 UK pt;因此切到反向时它同样成立,不会被方向切换带偏。
- 导出:CSV 带 UTF-8 BOM,中文表头在 Excel 里不乱码;TSV 用制表符分隔,方便粘贴。两者都是纯文本,导出内容随方向切换实时更新。
结果边界与舍入
浮点精度足够但别当成无限精确。脚本用双精度 Number 计算,有效位约 15 到 16 位;显示时统一取约 10 位有效数字并去掉尾部多余的零,避免把 2113.376418865 后面一长串浮点尾数误读成精确承诺。对账请按对方要求的小数位再四舍五入。
小体积的显示。反向换算常出现 0.000473176473 这类很小的值,脚本尽量展开成普通小数而不是甩出科学计数法;若结果非有限值则显示破折号并给出错误说明,不输出 NaN 或 Infinity。
0、负数与非法值分开处理。输入 0 得 0 是合法结果;负体积、空输入、文字、越界值分别触发不同的具体报错,错误区写明原因后停止换算,绝不静默归零。批量模式下某一行非法会点名行号并中止整批,避免一个错字污染其余行。
误差不逐行累积。对照表每行都从原始输入独立换算,参照列也重新从立方米折算,不是拿上一行累加;因此大表末尾不会出现漂移。全部计算在本地页面完成,不联网、不写 Cookie 或本地存储。
常见问题
品脱是体积还是重量?机翻错在哪?
品脱是体积单位,机翻把英文 pint 当成重量「磅」才出现了这类错配说法。美制液量品脱约 0.473176473 升,量的是容积;重量磅约 453.59237 克,量的是质量。两者量纲不同,不能互相换算,真要从体积算重量还得另给密度。
美制品脱和英制品脱到底差多少?
约 20%。美制液量品脱 0.473176473 升,英制品脱约 0.568261 升,比值约 1.2009494,英制的更大。所以 1 立方米约合 2113.38 个美制品脱,却只有约 1759.75 个英制品脱。照搬美英食谱里的「1 品脱」会让液体配比偏掉两成。
为什么一立方米能有两千多个品脱?
因为一立方米等于 1000 升,而一个美制液量品脱只有约 0.473 升,1000 除以 0.473 自然得到约 2113 个。这个数量级看着夸张,其实是「大容器除以小包装」的正常结果;换成英制品脱因为每个更大,就降到约 1760 个。
反向把品脱换回立方米,怎么核对没算错?
记住反向系数约 0.000473176473:1 个美制品脱就是这么点立方米。把正向得到的品脱数切回反向再算一次,应回到原来的立方米数;对照表第三列也从同一体积独立折算,两处可以互相印证。正反两方向共用同一组系数,只是对调 from 与 to。
输入负数、超大数或填了文字会怎样?
单值框 min 为 0,填负数会提示「体积不得为负」;超过 100000 会提示超出上限;填文字或非数字会提示不是合法数字。每种情况错误区都写明具体原因并停止换算,不会截断、不会归零,也不会输出一个看似正常的结果。
批量框里的空行和写错的行怎么处理?
空行直接跳过;某一行若含字母、文字或多个小数点,脚本会提示「第 N 行不是合法数字」并中止本次批量换算,不会把错行当 0 混进结果。只有所有非空行都合法时才逐行输出,保证整批数据干净。
对照表第三列为什么放英制品脱?
为了让美英两套品脱的差距看得见。第三列先把输入折算回立方米,再按英制品脱的升数重算一次;同一行里美制结果总比英制结果多约两成。切到反向换算时这一列依旧成立,因为它始终从体积出发,跟着方向切换一起重算。
换算会联网吗,导出的数字可靠吗?
不会联网。所有计算由页面内联脚本在本地完成,不发起网络请求,也不写 Cookie 或 localStorage。导出的 CSV 与 TSV 不是预先存好的死表,而是按当前方向由脚本重新算出来的纯文本,切换方向后再导出内容会跟着变。