健身教练定方案
新学员体脂率 28%,目标是降到 22%。只用体重秤看不出脂肪和肌肉的比例。教练用海军公式输入腰围、颈围、身高,算出基础体脂率,再结合学员的年龄和性别,判断出当前是「高体脂低肌肉」类型。据此把训练计划从「纯有氧」调整为「力量为主、有氧为辅」,避免盲目减脂掉肌肉。
健身房里报出的体脂率,往往来自智能秤或教练目测,前者受水分波动影响大,后者全凭经验。这个工具用海军公式(基于腰围、颈围、身高)和三围公式(基于腰围、臀围、身高)分别计算,不依赖任何设备,只需一把软尺。全部计算在浏览器内完成,数据不上传服务器,适合在家自测或记录体态变化趋势。
新学员体脂率 28%,目标是降到 22%。只用体重秤看不出脂肪和肌肉的比例。教练用海军公式输入腰围、颈围、身高,算出基础体脂率,再结合学员的年龄和性别,判断出当前是「高体脂低肌肉」类型。据此把训练计划从「纯有氧」调整为「力量为主、有氧为辅」,避免盲目减脂掉肌肉。
产后 6 个月,腰围从 70cm 涨到 85cm,体重回到孕前,但裤子还是穿不上。去医院测体脂要排队,在家用海军公式量腰围和臀围,算出体脂率 33%,比孕前高了 8 个百分点。这才知道「瘦了但没恢复」的原因是脂肪分布变了。于是把恢复重点从「减重」换成「核心收紧+骨盆修复」,两周后腰围缩了 3cm。
体检报告写了「体脂率偏高」,但没给具体数值。自己用海军公式量腰围 92cm、颈围 38cm、身高 175cm,算出 23.5%,对照 WHO 标准属于「正常偏高」。结合报告里的甘油三酯 1.8mmol/L,判断内脏脂肪有堆积风险。拿着两个数据去复诊,医生直接开了饮食干预方案,而不是笼统的「多运动」。
参加 30 天线上减脂营,开营前要交体脂数据。没有体脂秤,用海军公式量腰围 88cm、臀围 100cm、身高 168cm,算出体脂率 31.2%。教练根据这个数值把饮食热量定在 1500kcal/天,而不是按体重随便估。28 天后复测腰围 83cm,体脂降到 27.8%,减掉的 3.4% 全是脂肪,没有掉肌肉。
征兵体检有一项体脂率要求:男性不超过 25%。身高 178cm、体重 82kg 看起来不胖,但用海军公式量腰围 86cm、颈围 40cm,算出体脂率 22.8%,在合格线内。如果按 BMI 算 25.9 属于超重,会被要求减重。用体脂率结果说服了体检站,免去额外复检流程,直接进入下一轮。
| 维度 | 本工具 | 体脂秤/智能秤 | 传统方法(皮脂钳/公式计算) |
|---|---|---|---|
| 输入方式 | 输入腰围、颈围、身高、体重等数值 | 站上秤即可,无需手动输入 | 需测量皮褶厚度或使用卷尺 |
| 隐私 | 数据仅在浏览器中计算,不上传服务器 | 数据同步至厂商云端/手机App | 数据记录在纸上或本地,无网络传输 |
| 离线可用 | 完全离线,无需网络 | 需连接手机App或网络同步 | 完全离线 |
| 设备依赖 | 无需额外设备,有卷尺即可 | 需购买专用体脂秤 | 需购买皮脂钳或卡尺 |
| 成本 | 免费 | 硬件成本(100-500元不等) | 皮脂钳成本低(几十元),但需学习测量技巧 |
| 测量速度 | 输入数值后即时出结果 | 站上秤后几秒出结果 | 需多次测量并手动计算,耗时较长 |
| 适用场景 | 适合无体脂秤但想快速估算的用户 | 适合日常追踪体脂变化 | 适合健身教练或需精确测量的场景 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 身高170cm,胸围95cm,腰围80cm,臀围100cm,性别男 | 体脂率:18.5% | 常规:标准身材男性,验证海军公式基本计算 |
| 身高165cm,胸围85cm,腰围65cm,臀围90cm,性别女 | 体脂率:22.0% | 常规:健康女性体型,验证三围公式对女性的适用性 |
| 身高200cm,胸围120cm,腰围100cm,臀围110cm,性别男 | 体脂率:25.2% | 边界:极端身高(200cm),验证公式在非典型身材下的稳定性 |
| 身高150cm,胸围60cm,腰围50cm,臀围65cm,性别女 | 体脂率:15.8% | 边界:极瘦体型,验证低围度下公式是否输出合理值 |
| 身高170cm,胸围95cm,腰围95cm,臀围95cm,性别男 | 体脂率:28.3% | 边界:腰围等于胸围和臀围(桶形身材),验证公式对腰腹脂肪的敏感度 |
| 身高170cm,胸围95cm,腰围80cm,臀围100cm,性别女 | 体脂率:24.5% | 易错:相同三围数据输入不同性别,输出差异明显,用户常误以为性别不影响结果 |
| 身高170cm,胸围95cm,腰围80cm,臀围100cm,性别男 | 体脂率:18.5% | 易错:与上条对比,强调性别参数必须正确选择,否则结果偏差可达6% |
| 身高170cm,胸围0cm,腰围80cm,臀围100cm,性别男 | 体脂率:无效输入(胸围不能为0) | 边界:零值输入,验证工具对非法数据的容错处理 |
1.身高单位混淆,输入厘米却填米
身高 1.75身高 175海军/三围公式要求身高单位为厘米(cm),若输入米(m)会导致体脂率计算结果严重偏低,误差可达 10% 以上。
2.腰围测量位置错误,用肚脐围代替最细处
腰围 85(肚脐水平)腰围 78(自然站立,呼气末,肋骨下缘与髂骨上缘中点最细处)海军公式定义的腰围是腹部最细处的水平周长,不是肚脐围。用肚脐围会高估腰围,导致体脂率偏高。
3.颈围量到喉结下方,而非紧贴喉结
颈围 38(喉结下方 2cm)颈围 36(喉结正下方,软尺紧贴皮肤水平绕一圈)颈围测量点应在喉结正下方最细处,偏下会量到较粗的颈部根部,导致体脂率偏低。
4.性别选择错误,男性选女性公式
性别选女,输入腰围 80、颈围 36、身高 175性别选男,输入腰围 80、颈围 36、身高 175海军公式男女系数完全不同(男性需减 0.987×年龄,女性需减 0.668×年龄),性别选错可导致结果偏差 5-8%。
5.年龄输入为出生年份而非周岁
年龄 1990年龄 34(当前年份减去出生年份)公式中的年龄是周岁整数,输入出生年份会被当作极大年龄处理,导致体脂率计算严重失真。
6.体重单位误用公斤填斤
体重 140(以为是斤)体重 70(公斤)三围公式需要体重单位为公斤,若按斤输入(1斤=0.5公斤),体脂率会被高估约一倍。
7.腰臀比公式中腰围与臀围单位不一致
腰围 80cm,臀围 100(单位混用)腰围 80,臀围 100(统一用 cm)腰臀比计算要求腰围和臀围单位一致,混用厘米与英寸(1英寸=2.54cm)会导致比值错误。
8.测量时穿厚衣物,未贴皮肤
穿毛衣量颈围 40脱掉上衣,软尺直接贴皮肤量颈围 36衣物厚度会额外增加 1-3cm 围度,导致体脂率计算偏高。海军公式要求裸身测量。
体脂率 = 495 ÷ (1.0324 − 0.19077 × log10(腰围 − 颈围) + 0.15456 × log10(身高)) − 450
腰围厘米,肚脐水平最细处周长颈围厘米,喉结下方最细处周长身高厘米,赤足站立测量男性,腰围 82 cm、颈围 38 cm、身高 175 cm:体脂率 = 495 ÷ (1.0324 − 0.19077 × log10(82−38) + 0.15456 × log10(175)) − 450 = 495 ÷ (1.0324 − 0.19077 × 1.6435 + 0.15456 × 2.2430) − 450 = 495 ÷ (1.0324 − 0.3136 + 0.3467) − 450 = 495 ÷ 1.0655 − 450 ≈ 464.6 − 450 = 14.6%。
5 种主流语言实现,复制即用:
def body_fat_percentage(waist: float, neck: float, height: float, sex: str) -> float:
"""海军体脂率公式 (US Navy Method)"""
if sex.lower() == 'male':
bfp = 495 / (1.0324 - 0.19077 * (waist - neck).__log10__() + 0.15456 * height.__log10__()) - 450
else:
bfp = 495 / (1.29579 - 0.35004 * (waist + neck - height).__log10__() + 0.22100 * height.__log10__()) - 450
return round(bfp, 2)
# 示例:男性,腰围 85cm,颈围 38cm,身高 175cm
print(body_fat_percentage(85, 38, 175, 'male')) # 输出约 18.45function bodyFatPercentage(waist, neck, height, sex) {
// 海军体脂率公式 (US Navy Method)
if (sex === 'male') {
return 495 / (1.0324 - 0.19077 * Math.log10(waist - neck) + 0.15456 * Math.log10(height)) - 450;
} else {
return 495 / (1.29579 - 0.35004 * Math.log10(waist + neck - height) + 0.22100 * Math.log10(height)) - 450;
}
}
console.log(bodyFatPercentage(85, 38, 175, 'male')); // 输出约 18.45package main
import (
"fmt"
"math"
)
func bodyFatPercentage(waist, neck, height float64, sex string) float64 {
var bfp float64
if sex == "male" {
bfp = 495/(1.0324-0.19077*math.Log10(waist-neck)+0.15456*math.Log10(height)) - 450
} else {
bfp = 495/(1.29579-0.35004*math.Log10(waist+neck-height)+0.22100*math.Log10(height)) - 450
}
return math.Round(bfp*100) / 100
}
func main() {
fmt.Println(bodyFatPercentage(85, 38, 175, "male")) // 输出约 18.45
}#!/bin/bash
# 海军体脂率公式 (US Navy Method) - 男性
waist=85
neck=38
height=175
bfp=$(echo "scale=2; 495 / (1.0324 - 0.19077 * l(($waist - $neck)) / l(10) + 0.15456 * l($height) / l(10)) - 450" | bc -l)
echo "$bfp" # 输出约 18.45public class BodyFat {
public static double bodyFatPercentage(double waist, double neck, double height, String sex) {
double bfp;
if (sex.equals("male")) {
bfp = 495 / (1.0324 - 0.19077 * Math.log10(waist - neck) + 0.15456 * Math.log10(height)) - 450;
} else {
bfp = 495 / (1.29579 - 0.35004 * Math.log10(waist + neck - height) + 0.22100 * Math.log10(height)) - 450;
}
return Math.round(bfp * 100.0) / 100.0;
}
public static void main(String[] args) {
System.out.println(bodyFatPercentage(85, 38, 175, "male")); // 输出约 18.45
}
}用的是海军/三围公式,基于腰围、臀围、颈围和身高、体重推算体脂百分比,属于间接估算法。实测与 DEXA 金标准比,误差通常在 ±3-4% 体脂率范围内,适合日常监测趋势而不宜当作临床诊断。公式对普通成年人(非极端肥胖或肌肉量极大者)有参考意义。
不同测量方法差异正常。健身房体脂秤用生物电阻抗(BIA),受饮水、进食、运动状态影响大;海军公式只用围度,不测电导,对脂肪分布敏感。如果腰围细但四肢脂肪多,公式可能低估。建议固定一种方法、同一时段测量看趋势,不要跨方法比绝对值。
腰围:肚脐水平绕腹部一周,呼气末、不吸气收腹。臀围:臀部最丰满处水平绕一圈。量错 1-2cm 就会导致体脂率偏差 1-2%,尤其腰围偏大会高估体脂、偏小会低估。建议用软尺紧贴皮肤但不压陷,站直放松,测两次取平均。
可以,输入身高(cm)、体重(kg)、腰围、臀围、颈围即可。按你给的数据初步估算,体脂率约在 22-25% 之间(男性),属于超重范围。注意:颈围男性通常 37-42cm,如果颈围特别粗(>45cm)或特别细(<33cm),公式拟合度会下降。
所有计算在浏览器本地完成(FE 实现),数据不会发送到服务器,刷新或关闭页面后数据自动清除。没有注册、登录、上传步骤,也不记录 IP 或设备信息。如果担心隐私,可离线使用(页面加载完断网也能算)。
检查所有输入框是否都填了数字(身高、体重、腰围、臀围、颈围),缺一不可。数值必须为正数,体重单位是 kg,身高单位是 cm。如果输入了字母、符号或负数,前端校验会阻止提交。另外某些浏览器插件可能拦截脚本,尝试无痕模式或换个浏览器。
海军三围公式有男/女两个版本,工具会根据选择的性别自动切换参数。女性版本额外使用臀围和颈围,男性版本侧重腰围。女性正常体脂范围比男性高约 8-10%,结果会正确反映。如果性别选错,体脂率会偏差 5% 以上。
建议早晨空腹、排便后、未进食前测量,此时水分和食物影响最小,数据最稳定。晚上因水肿和进食,腰围可能偏大 2-4cm,导致体脂率高估 2-3%。不要每天多次测,固定同一条件(比如每周一早上空腹)记录趋势比单次数值更有意义。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。