← 全部文章
指南 2026年8月 · 阅读约 5 分钟

扫条码算热量:营养成分表没告诉你的事

先说结论: 扫条码是记录包装食品最准的方式,因为数字来自厂家的标签,不是估算。但标签算的是厂家自己定义的"每份"或"每100克",按国家标准有些数值低于门槛可以标成"0",而它对"你吃了这包里的多少"只字不提。扫完再补一句量,几乎就准了;只扫不补,有时反而比拍照偏得更远。

它是怎么工作的

包装上的条码是商品编号(国内是以69开头的商品条码,欧洲是EAN,美国是UPC),不是营养数据。App用摄像头读出这串码,再去一个把码和商品、标签对应起来的数据库里查。数据库大致有三类:

  • 厂家提供的数据。 直接来自品牌,准确,但覆盖有缺口。
  • 公共数据库,例如Open Food Facts。 由用户填充,数百万条商品,在欧洲尤其强,任何App都能免费用。配方一变,条目就旧了。
  • App自己的数据。 MyFitnessPal那两千万条大多是用户上传的,覆盖广,错条目的比例也高。

覆盖范围有强烈的地域性。国产商品,国内App找到的概率明显更高。扫了没结果,不是扫描器坏了,是数据库有洞——这时候拍一张营养成分表,或者直接说出商品名。

扫出来能准确拿到什么

热量、蛋白质、碳水、脂肪,以及标签上印的一切:糖、膳食纤维、钠、饱和脂肪,有时还有维生素。所以条码是拿到多数App会忽略的那三项——糖、纤维、钠——最好的输入方式,因为它们以照片永远做不到的方式印在了标签上。

CalMePlease在扫描时会把这些自动填进十项指标里。只看四项营养素的App会把它们丢掉。

中国标签要先看懂两件事

第一,能量单位是千焦。 按国家标准GB 28050,预包装食品的营养成分表必须标注能量以及蛋白质、脂肪、碳水化合物、钠这"1+4"项,能量以千焦(kJ)表示,并给出营养素参考值百分比(NRV%)。而我们日常说的"大卡"是千卡:1大卡≈4.184千焦。看到"1450千焦"要先除以4.184,约等于347大卡。这一步没做,误差就是四倍多。有些标签会同时标出千卡,但不是必须的。

第二,看清是"每100克"还是"每份"。 标准允许按每100克、每100毫升或每份标示。同一包薯片,按100克标和按一份30克标,数字差三倍多。App有时会把100克的数值当成一份带出来,大包装尤其要确认它是按什么算的。

标签藏起来的几件事

1. "每份"不是你的量

所有标签都以某个"份"为基准,而这一份多大由厂家决定。一包100克的零食可能写成"3份";一瓶500毫升的饮料可能按250毫升标示。扫完直接接受默认值,你记下的就是实际吃掉的三分之一。

解决办法: 扫完之后把量说出来。"一整包""半瓶""150克"。在CalMePlease里说一句就行。扫描出的错误,大多数不是标签错,而是量错。

2. "0"是有门槛的

国家标准允许在低于一定含量时标示为"0"。也就是说,标着"0"的那一项不等于绝对没有,只是低于可以标零的门槛。单次差别很小,但如果你一天里多次少量食用同一类产品——比如反复用某种喷雾油或者调味料——这部分就完全不会出现在你的记录里。

3. "生重"和"熟重"

面条、大米、燕麦这些会吸水的东西,标签按干重标示。生米100克约350大卡,蒸熟的米饭100克约130大卡。扫了包装、记下熟重,误差接近三倍。

解决办法: 熟食按熟重记到熟食条目上,或者按干重记你实际下锅的量。

4. 允许误差

标准承认实测值与标示值之间存在允许的偏差范围,各国都是如此。独立检测中,包装食品的实测热量高于标示值10%到20%的情况会定期出现。

5. 配方会改

厂家会调整配方,而数据库里的条目可能是三年前的。手上的标签和扫描结果对不上时,以手上的标签为准。

便利店和常见包装的几个具体坑

把上面的规则落到日常最常买的几类东西上,坑的位置相当固定。

饭团和三明治。 通常是"每份即整包",这一类反而最省事,扫完直接记就行。要注意的是同一系列不同口味差别不小,别用上次的记录顶替这次。

酸奶和乳饮料。 大杯装经常按100克标示,而你一次喝掉的是一整杯。另外"乳酸菌饮料"和"酸奶"是两类东西,前者的糖通常高得多,名字看起来却很接近。

方便面。 标签一般把面饼和调料包分开标,或者只标面饼。整包吃完的话,油包和粉包都要算进去,两者加起来常常占总热量的三分之一以上。

坚果和果干。 这类东西的密度高,一小把就接近一份,而"一小把"在不同人手里差一倍。这是最值得称一次、记住大概是多少的一类。

大瓶饮料。 按250毫升标示的500毫升装很常见。喝完整瓶就要乘以2,这一步漏掉,一天就少记100到200大卡。

条码、拍照、语音:什么时候用哪个

情况最合适的输入原因
包装食品全部吃完条码和标签一样准
包装食品吃了一部分条码+说出量对吃掉的比例,和标签一样准
家常菜拍照+语音补充没有条码,AI给组成部分命名
在外面吃、外卖拍照+语音补充油和糖藏着
没有包装的零食语音最快
自己煮的饭或面条码+熟重标签按干重

规律是这样的:条码对"印出来的东西"准确,量由你补;拍照估算量,看不见的东西由你补;语音则两样都靠你的记忆补。

哪些App免费扫条码

App免费版的条码
CalMePlease支持
Cronometer支持
Cal AI支持
薄荷健康支持
食物库支持
MyFitnessPal仅会员(2022年起)

可以照做的顺序

  1. 扫一下。
  2. 看清它是按什么算的(每份?每100克?干重?),能量单位是千焦还是千卡。
  3. 用你自己的单位说出吃了多少。
  4. 如果查不到这个商品,拍营养成分表或者说出商品名。不要随便挑一条"差不多"的条目——最大的误差就是从这里来的。
  5. 米饭和面条按熟重记到熟食条目上。

五步里有两步是关于量的。这就是全部的教训:标签是准的,变量是你的分量。

常见问题

扫条码比拍照准吗? 对包装食品是的。对"你吃了多少"不是——扫描不知道你吃的是一份还是一整包。

为什么App里的热量和包装上不一样? 可能是配方改了而条目还是旧的,可能是把每100克的数值当成了每份,也可能是别人录错了。以手上的标签为准。另外注意有没有把千焦当成千卡看。

千焦怎么换算成大卡? 除以4.184。1000千焦约等于239大卡。

这些App用的是什么数据库? 厂家数据、Open Food Facts和用户自建条目的混合,覆盖范围有地域差异。国产商品用国内App命中率更高。

除了热量,糖和钠也能扫出来吗? 可以,因为它们印在标签上。CalMePlease每次扫描都会把糖、钠和膳食纤维作为十项指标的一部分记下来。

没有条码的东西怎么办? 拍营养成分表,或者说出名称。蔬菜、水果、生鲜肉和面包房的产品都没有条码。


延伸阅读:AI是怎么认出食物的 · 用语音记录饮食

CalMePlease免费版支持扫条码,并把标签上的糖、钠和膳食纤维计入每餐十项指标。在App Store获取

继续阅读
指南

undefined

现在就试试?

扫码安装
在 App Store 下载