使用方法
- 「每日总热量」默认填 2000(示例值,单位千卡),允许 500~6000 之间的数字。
- 「蛋白质供能比」默认填 15、「脂肪供能比」默认填 25(均为示例值,单位 %),两项都允许 0~100。
- 碳水供能比不需要输入,工具按
100% − 蛋白质% − 脂肪%自动得出,默认条件下是 60%。 - 点「开始换算」,或在任意输入框里按 Enter。结果区给出蛋白质 75 g、脂肪 55.6 g、碳水 300 g 和回算热量 2000 千卡。
- 结果区下方的胶囊标签逐项告诉你每个供能比是否落在《中国居民膳食指南(2022)》的可接受范围内;绿色表示在区间内,红色表示超出并会指出超出的是哪一项。
- 对照表按每 200 千卡一档列出克数,默认先显示 12 行,点「加载更多」补齐剩余档位;要带走数据用「导出 CSV」或「复制对照表」。
这个三大营养素计算器能解决什么问题
一是把「供能比」这个抽象指标落到克数上。营养标签、健身餐单、医院营养科处方写的都是百分比,但真正要称重、要分装、要下单买菜时用的是克。本工具做的唯一一件事就是把这个换算做完,并且把中间量摊开给你看。
二是当场判断一套配比是否越界。很多人按网上抄来的「高蛋白、低碳水」方案配餐,蛋白质供能比往往冲到 30% 以上,脂肪也不低,结果碳水一路压到 40% 以下。这不是算错,而是超出范围——胶囊标签会直接把越界的那一项标红,省去自己回去翻指南。
三是给出可复现的口径。同一个热量下,别人算的克数和你算的对不上,八成是系数取得不同:有人用 4 / 9 / 4,有人用 4.1 / 9.3 / 4.1,还有人把膳食纤维也算进碳水。本页固定用 Atwater 通用系数(碳水 4、蛋白 4、脂肪 9 kcal/g),并在页面里写明,所以结果可以逐位复核。
四是支持调整热量档做计划表。减重期、维持期、增肌期往往用同一个供能比、不同的总热量。先把供能比定下来,再用对照表把 1600 / 1800 / 2000 / 2200 / 2400 千卡各档的克数一次看全,做周计划时直接查表,不用一档一档回来重算。
本页不做这些事:不考虑你的年龄、性别、身高、体重和活动量,因此不会替你决定「每天该吃多少千卡」——那个数请先用「基础代谢计算器」和「每日总消耗计算器」估出来再填进来;也不判断食材、不生成食谱,只做热量与克数之间的换算。
计算原理:Atwater 系数与供能比区间
1)用的是什么系数。三大营养素每克能提供的热量叫 Atwater 系数:碳水化合物和蛋白质都是 4 kcal/g,脂肪是 9 kcal/g。这组数字来自 Wilbur Atwater 对混合膳食做的燃烧热修正——食物在体内不是完全燃烧,蛋白质还有一部分以尿素形式排出,所以要扣掉这部分损失,修正后才得到 4 / 9 / 4 这组整数。酒精是例外,7 kcal/g,本工具不计入三大营养素,所以喝了酒的日子实际热量会比这里算出来的高。
2)输入怎么变成输出。设每日总热量为 E(千卡),蛋白质供能比为 p(%),脂肪供能比为 f(%),碳水供能比 c = 100 − p − f。三个克数是:
- 蛋白质克数 =
E × p ÷ 100 ÷ 4 - 脂肪克数 =
E × f ÷ 100 ÷ 9 - 碳水克数 =
E × c ÷ 100 ÷ 4
注意分母不一样:蛋白质和碳水除 4,脂肪除 9。这是最容易被抄错的一步——把脂肪也按 4 除,算出来的脂肪克数会虚高 2.25 倍。默认条件下 2000 × 25% ÷ 9 = 55.5556 g,显示时保留一位小数写作 55.6 g;如果误按 4 除会得到 125 g,差了将近 70 g。
3)为什么要保留一位小数。脂肪克数的真值是 55.5556…,除不尽。页面对蛋白质和碳水显示整数或一位小数,对脂肪统一保留一位小数,回算热量时用的是未截断的中间值而不是显示值。这个区别是可以量化的:拿显示值累加是 75 × 4 + 55.6 × 9 + 300 × 4 = 2000.4 千卡,比输入的 2000 多出 0.4;而用未截断的 55.555556 回算正好等于 2000。所以结果区的合计一栏恒定回显你输入的 E,不会出现「加回去差几卡」的情况。
4)区间是哪来的。《中国居民膳食指南(2022)》沿用中国营养学会的宏量营养素可接受范围(AMDR):蛋白质 10%~20%、脂肪 20%~30%、碳水化合物 50%~65%。这三个区间是可接受范围而不是目标值,落在里面说明这套配比在群体层面没有已知风险,落在外面也不等于立刻有害——比如脂肪 35% 的地中海饮食在短期干预研究里是安全的,但它已经离开了指南给一般人群划的区间,工具会如实标红而不是替你圆场。
5)边界和阈值。三项供能比之和必须恒等于 100%。因此工具校验的不是三个独立的范围,而是 p + f 与 100 的关系:p + f 达到或超过 100 时碳水供能比会变成 0 或负数,此时不论 p、f 各自多「合规」,配比本身已经不成立,工具会直接拒绝而不是算出负克数。反过来,p + f 可以小到 0,此时碳水占 100%,虽然数学成立,但胶囊标签会把碳水标红,因为 100% 远超 65% 的上限。
6)常见误用。把「供能比」当成「重量比」是最普遍的一个。15% 的蛋白质和 25% 的脂肪听起来蛋白质更少,但换成克数后是 75 g 比 55.6 g,蛋白质反而更多——因为脂肪每克带的能量是蛋白质的 2.25 倍。反过来,想提高蛋白质克数,把供能比从 15% 提到 20% 只多 25 g;把总热量从 2000 提到 2400 同样多 5 个百分点,效果一样,但对总热量敏感的人要谨慎。第二个误用是拿它当热量缺口计算器:本页只做「给定热量怎么分配」,不判断这个热量本身是否合理。
完整示例(默认设置,数值仅作演示)
这个三大营养素计算器在页面打开时的默认值就是下面这套条件:每日总热量 2000 千卡、蛋白质 15%、脂肪 25%。
- 碳水供能比 = 100 − 15 − 25 = 60%;
- 蛋白质 = 2000 × 0.15 ÷ 4 = 75 g;
- 脂肪 = 2000 × 0.25 ÷ 9 = 55.5556 g,显示 55.6 g;
- 碳水 = 2000 × 0.60 ÷ 4 = 300 g;
- 回算核验:75 × 4 + 55.5556 × 9 + 300 × 4 = 300 + 500 + 1200 = 2000 千卡,与输入完全闭合;
- 区间校验:蛋白质 15% 在 10~20% 内、脂肪 25% 在 20~30% 内、碳水 60% 在 50~65% 内,三项全部通过。
把脂肪供能比从 25% 调到 30%、蛋白质调到 10%,碳水会自动降到 60%,克数变成 50 / 66.7 / 300,三项仍全部在区间内;再继续加脂肪到 35%,胶囊会立刻把脂肪标红,因为 35% 超过了 30% 的上限,而碳水此时只剩 55%,依然合规——越界是按项判定的,不会因为别项合规而被掩盖。
供能比与热量档对照表
下表固定 2000 千卡,逐档改变供能比,用来看「区间边界长什么样」:
| 供能比 蛋白 / 脂肪 / 碳水 | 蛋白质 g | 脂肪 g | 碳水 g | 区间校验 |
|---|---|---|---|---|
| 10 / 20 / 70 | 50 | 44.4 | 350 | 碳水超出 65% 上限 |
| 10 / 25 / 65 | 50 | 55.6 | 325 | 三项都在区间内 |
| 10 / 30 / 60 | 50 | 66.7 | 300 | 三项都在区间内 |
| 15 / 25 / 60(默认) | 75 | 55.6 | 300 | 三项都在区间内 |
| 15 / 30 / 55 | 75 | 66.7 | 275 | 三项都在区间内 |
| 20 / 25 / 55 | 100 | 55.6 | 275 | 三项都在区间内 |
| 20 / 30 / 50 | 100 | 66.7 | 250 | 三项都在区间内 |
| 25 / 25 / 50 | 125 | 55.6 | 250 | 蛋白质超出 20% 上限 |
再看固定供能比 15 / 25 / 60、只改总热量那一组。表里能看出一条线性关系:热量每增加 200 千卡,蛋白质多 7.5 g、脂肪多 5.6 g(准确说是 200 × 25% ÷ 9 = 5.5556 g)、碳水多 30 g。
| 每日总热量 | 蛋白质 g | 脂肪 g | 碳水 g | 每 100 g 碳水配多少蛋白 |
|---|---|---|---|---|
| 1600 kcal | 60 | 44.4 | 240 | 25 g |
| 1800 kcal | 67.5 | 50 | 270 | 25 g |
| 2000 kcal(默认) | 75 | 55.6 | 300 | 25 g |
| 2200 kcal | 82.5 | 61.1 | 330 | 25 g |
| 2400 kcal | 90 | 66.7 | 360 | 25 g |
输入范围、边界与精度说明
- 每日总热量 500~6000 千卡。低于 500 千卡已经不是正常膳食范围,写进来算出的克数没有实际意义;高于 6000 千卡超出成年人常见摄入的两倍以上,多半是单位填错了(比如把千焦当千卡)。字母、空值和不在此范围的数都会被拒绝,不会静默按 0 处理。
- 蛋白质、脂肪供能比各 0~100,且两者之和必须小于 100。之和达到 100 时碳水供能比变成 0,超过则变成负数,工具会指出当前之和是多少、碳水会落到什么值。允许填 0:在 2000 千卡下把脂肪填 0、蛋白质保持 15%,碳水供能比会升到 85%、克数是 425 g,数学成立,但胶囊会把脂肪和碳水两项同时标红。
- 小数供能比按原值参与计算。16.5% 的蛋白质在 2000 千卡下是 82.5 g,27.5% 的脂肪是 61.11 g,显示保留一位小数即 61.1 g。输入框步长是 0.5,但手输 16.3 这样的数也不会被拦。
- 脂肪克数一律保留一位小数。因为除以 9 几乎总是除不尽,统一按一位小数显示,避免同一份表里有的整数有的带两位小数。要更精细的数值请用「导出 CSV」,CSV 里写的是保留两位小数的中间值。
- 合计热量恒等于输入值。回算用的是未做四舍五入的中间量,所以不会出现「加回去比输入少 5 千卡」的情况。这一点和随手拿显示值累加的结果不同,是本页刻意保留的精度口径。
- 不区分膳食纤维、糖醇和酒精。膳食纤维实际供能约 2 kcal/g,赤藓糖醇接近 0,酒精是 7 kcal/g,本工具把碳水统一按 4 kcal/g 计。如果一天里有大比例的低热量甜味剂或酒精,这里的碳水克数会偏高或漏算。
- 区间校验只看供能比,不看绝对量。75 g 蛋白质对体重 50 kg 的人和 100 kg 的人意义不同,这个三大营养素计算器没有体重输入,所以不会给出「每公斤体重多少克」的判断——那需要另一个入口。
常见问题
为什么碳水的供能比不让我填?
因为三大营养素供能比之和必然等于 100%,填了会互相打架。工具改成只让你填蛋白质和脂肪两项,碳水用 100 − 蛋白% − 脂肪% 反推。想直接指定碳水比例,把 100 减去目标碳水就是「蛋白 + 脂肪」之和,再在两者之间分配即可。
算出来的克数用的是生重还是熟重?
都不是,这里只做能量换算,不涉及食材。真正的坑在后面:100 g 生米约 346 千卡、煮熟后 100 g 米饭约 116 千卡,同一碗饭按生重算会差出三倍。用本工具拿到克数后,去查食材营养表时务必看清标注的是生重还是熟重。
蛋白质 10% 和 20% 在下限和上限,哪个更合适?
指南给的是可接受范围,两端都合规,选哪一个取决于其它约束:增肌期或老年人群常往 15%~20% 取,肾功能不全的人群常往 10%~15% 取。工具不替你决定,只负责把百分比换成克数并校验是否越界。
为什么脂肪要用 9 除而不是 4 除?
因为脂肪每克提供的能量是 9 千卡,而蛋白质和碳水是 4 千卡。三者分子都是「来自该营养素的热量」,分母是各自系数,所以脂肪的分母是 9、另外两项是 4。这一步抄错的话,2000 千卡下脂肪会从 55.6 g 变成 125 g,是这套换算里最常见的翻车点。
「20 / 30 / 50」这一行三项都在区间内吗?
在。蛋白质 20% 正好压在 10~20% 的上限、脂肪 30% 正好压在 20~30% 的上限、碳水 50% 正好压在 50~65% 的下限。区间是闭区间,压线的值算通过,胶囊标签显示为绿色。想留安全余量的话,建议把三项都往区间中段靠。
一天吃 300 g 碳水是不是太多了?
要看相对量而不是绝对量。2000 千卡里 300 g 碳水对应 60% 供能比,落在 50~65% 的区间内;但如果你的实际摄入只有 1500 千卡,同样 300 g 碳水就变成 80% 供能比,超出上限。判断的标准始终是「碳水热量占总热量的比例」,本工具算的正是这个比例和它的克数对应值。
导出的 CSV 里数字为什么和页面上不一样?
页面显示保留一位小数,CSV 里保留两位小数,用的是同一组未截断的中间量。例如 2000 千卡、25% 脂肪,页面显示 55.6 g,CSV 里是 55.56 g,差在显示精度而不是算法。回算热量时两种口径都会还原到 2000 千卡。
这个三大营养素计算器能用来做医疗或临床配餐吗?
不能。它只是一个百分比与克数之间的换算器,不涉及疾病诊断、药物交互、肠内肠外营养配方,也不考虑个体代谢差异。临床营养处方请交给临床营养师,并按医疗机构给出的配方执行;本页结果可以作为核对算术的辅助,不能作为依据。