花园土壤用量计算器

把花圃面积、铺土厚度和每袋升数填进去,先算理论体积,再乘松散系数并向上取整,直接告诉你该买几袋土。默认样本已经填好,打开就能看到分步结果。

按回车立即计算,范围 0.1~10000 m²。
内部先除以 100 换成米,范围 1~200 cm。
按包装标注填写,范围 1~100 L。
默认 1.15,范围 1~2;填 1 表示不计富余。
默认已填三段面积;清空后点「载入示例」可还原。清单每项各自向上取整再汇总。
理论体积 m³—
理论袋数—
乘系数后—
向上取整(袋)—
每袋覆盖 m²—

提示:数字框按回车触发计算;面积清单是多行输入,按 Ctrl/Cmd + Enter 触发批量换算。

不同面积与厚度下的整袋数对照(数值由本页脚本实时计算)

面积 × 厚度理论体积 m³理论袋数乘系数后整袋数
10 m² × 10 cm
10 m² × 15 cm
10 m² × 20 cm
20 m² × 10 cm
20 m² × 15 cm
20 m² × 20 cm
30 m² × 10 cm
30 m² × 15 cm
50 m² × 10 cm
5 m² × 5 cm
15 m² × 30 cm
100 m² × 5 cm
1 m² × 1 cm
200 m² × 200 cm

对照表第一组与完整示例使用同一组参数,是整张表的锚点;改动每袋升数或松散系数,全表会重新计算。

使用方法

  1. 先填两个几何量。面积按平方米填,厚度按厘米填,两者单位不同,页面先把厘米除以 100 换成米再相乘。默认样本已填 10 m² 与 10 cm,打开即见分步结果,不必自己先想例子。
  2. 再填两个包装量。每袋容量按包装升数填,常见 20 L;松散系数默认 1.15,估计翻松、沉降与边角损耗的富余,可在 1 到 2 间按土质微调,填 1 即不计富余。
  3. 两种触发方式。四个数字框按回车立刻计算,五张卡片同步刷新;面积清单是多行文本框,按 Ctrl/Cmd + Enter 把每段面积分别换成整袋数并汇总,支持空格、逗号或换行分隔。
  4. 区分中间量与采购量。结果区用 role="alert" 标注,把理论体积、理论袋数、乘系数、向上取整四步逐行列出,读屏软件整段播报;只有最后那个整数能直接抄进购物车。
  5. 核对与导出。对照表默认 12 行,点「加载更多」再展开 2 行;导出 CSV 带 BOM、复制对照表按 TSV 分列。字段留空或超范围时红框写明字段与范围,不会偷偷当成 0。

这个工具能解决什么问题

一是把「买几袋土」从拍脑袋变成可复算的四步。花坛翻土、屋顶花园铺基质、育苗盘填土,商家按袋卖、按升标,园丁却按平方米和厘米想,中间隔着体积换算与包装规格两道坎。少买一袋要补单多跑一趟,多买几袋受潮结块还占阳台,本页把两道坎一次算清并把每一步中间值都摊开。

二是纠正「理论体积直接除以每袋升数」这个最常见的低估。袋装土标的是装袋体积,倒出翻松后孔隙变大,铺好又被踩实、浇水沉降,边角还有损耗,实际用量通常更多。页面把这份富余显式写成 1.15 的系数,而不是让人凭经验在心里加一点,换个人、换个季节重算口径仍一致。

三是给出「整袋」这个真正的采购口径。57.5 袋在表格里合理,在下单页面里没有意义;向上取整到 58 袋才可用,同时报出每袋在 10 cm 厚下覆盖 0.2 m²,方便反推零星补土或核对整袋数乘覆盖面积是否盖得住花圃。有些旧目录把本页记作 GardenSoil计算器,指的仍是同一套面积乘厚度的算法。本页不区分营养土与泥炭配比,也不估算单价运费。

原理和变量:理论体积、松散系数与整袋取整

第一步,面积乘厚度得体积,但两个输入单位并不相同。面积是 m²,厚度是 cm,必须先把厚度除以 100 换成米再相乘:V = A × (d / 100),单位 m³。10 m² × 10 cm 就是 10 × 0.1 = 1 m³。很多人直接把 10 乘 10 当成 100 m³,差了整整两个数量级,根源就是漏掉厘米到米这道换算;本页把它固定写进公式,不依赖使用者记得换单位。

第二步,把体积换成袋数。1 m³ = 1000 L,理论袋数 N = V × 1000 / B,B 是每袋升数。1 m³ 除以 20 L/袋得 50 袋。这一步算出的是「压实体积」下的理论值,隐含假设是土壤铺好后体积不增不减,而真实花园里并不成立,所以不能直接拿去下单。

第三步,乘松散系数,这是整条链路的核心。袋装土经搬运、倾倒、翻松,颗粒间孔隙增加;铺好后又因浇水踩踏沉降,边角还有损耗,实际用量普遍高于理论值。本页用 L(默认 1.15,可调 1 到 2)统一表示富余:N′ = N × L,即 50 × 1.15 = 57.5 袋。它单独占一张结果卡片而不合并到最后一步,正因为最容易被省略、最容易造成「买少了」。系数不是国标定值,黏重土取小、疏松基质取大,关键是显式写出来、可复算。

第四步,向上取整成整袋。土壤按整袋销售,57.5 必须变成 58,用的是 Math.ceil 而不是四舍五入:哪怕只多出 0.1 袋也要多买一整袋才够铺满,向下取整会留一块没土的地,补买一袋的运费远超这点富余。本页对「乘系数后」与「向上取整后」分别给数,让你看清舍入发生在哪一步、多出那袋是系数还是取整造成的。

还有一个反向量:每袋覆盖面积。C = (B / 1000) / (d / 100),即每袋体积除以铺土厚度。20 L 是 0.02 m³,铺 0.1 m 厚覆盖 0.2 m²,与整袋数互为倒数,可交叉核对 58 袋乘 0.2 m² 约 11.6 m²,比目标 10 m² 略大,正好对应系数与取整叠加的富余。四个变量各有边界:面积 0.1~10000 m²、厚度 1~200 cm、每袋 1~100 L、系数 1~2,超出不是截断而是明确报错,避免无声偏差。

完整示例(默认样本实测)

默认样本是面积 10 m²、厚度 10 cm、每袋 20 L、松散系数 1.15,面积清单填了 10、20、30 三段。按四步逐项核对:

五个位置里的数字不是写死在页面上的,而是加载时用自己的 calc 函数按同样四步算出再填入;改动输入框立即跟随重算,数值复算表里的 1、50、57.5、58、0.2 就是这样由脚本得到的,人工抄一遍反而容易与实时结果对不上。

面积清单 10、20、30 会另给三行整袋数与合计。分开算时每块地各自向上取整,三处小数余量各补一袋,合计通常比合并后只取整一次略多,这是整袋舍入的颗粒度效应,不是算错。

对照表与输入范围

表格列出 14 组面积与厚度组合,前 12 行可见,后 2 行点「加载更多」展开。每组都调用同一个 calc 函数,按当前每袋升数与松散系数算出四列,所以不是印死的速查表:把每袋容量改成 25、或把系数改成 1.3,全表立即重算。第一组 10 m² × 10 cm 与完整示例同参数,是整张表的锚点,也是和数值复算表对照的入口;其余组合覆盖小面积厚铺、大面积薄铺与极小面积等边界,方便观察厚度翻倍时整袋数是否近似翻倍。

两个按钮从同一份计算结果生成数据:导出 CSV 带 UTF-8 BOM,Excel 打开中文表头不乱码;复制对照表按 TSV 送进剪贴板自动分列,屏幕所见与导出所得永远一致。

结果边界与舍入

常见问题

为什么 10 乘 10 不是 100 立方米?

厚度单位是厘米,公式先把 10 cm 除以 100 换成 0.1 m,再用 10 m² 乘 0.1 m 得 1 m³。漏掉这一步会放大一百倍,是这类计算最常见的错。

50 袋为什么最后变成 58 袋?

50 是理论袋数,乘 1.15 系数得 57.5,再因整袋销售向上取整到 58。中间两步都在结果区单独列出,方便核对差额来自哪里。

松散系数 1.15 是标准值吗?

不是国标,只是常见经验富余。黏重压实园土可取接近 1 的值,疏松泥炭基质可取更大,范围 1 到 2 按现场情况定。

每袋升数该填 20 还是 25?

按包装标注的实际升数填。不同品牌规格差别大,填小了总袋数算多、填大了算少,它整体缩放第二步结果,最该照实填。

四舍五入到 57 袋不行吗?

不行。57.5 袋还差半袋才铺满,向下取整会留一块空地。商家不卖半袋,任何小数余量都得补一整袋,所以固定用 Math.ceil。

每袋覆盖 0.2 m² 是怎么来的?

20 L 等于 0.02 m³,铺 0.1 m 厚时覆盖 0.02 除以 0.1 得 0.2 m²。它是每袋体积与厚度的商,厚度一改就跟着变。

清单分三段算,合计为什么比一次算多?

每段各自向上取整,三处小数余量各补了一袋。合并成一段只取整一次就没有叠加,这是整袋舍入的颗粒度效应,不是算错。

我填的面积会被上传吗?

不会。计算全在当前浏览器完成,页面不发起网络请求,也不写 Cookie 或 localStorage,Network 面板始终是空的。

相关工具