Understanding your weight in relation to your height is a key aspect of assessing your overall health. Use our calculator to estimate your ideal weight range and explore related metrics.
e.g., 175 for cm, 5.9 for feet, or 5′ 9″ for feet & inches.
Male
Female
Sex influences ideal weight ranges.
Your Weight & Health Metrics
Estimated Healthy Weight Range
—
Body Mass Index (BMI)—
Metric: Weight per Height Unit—
Metric: Height Squared—
Weight Unit Used—
Height Unit Used—
Gender Used—
BMI Categories by Height
BMI classification ranges across different heights (Male, 175cm assumed for illustration)
Ideal Weight Ranges by Height
Height Range (cm)
Male Ideal Weight (kg)
Female Ideal Weight (kg)
Approximate ideal weight ranges based on height and biological sex.
What is Weight Based on Height?
Weight based on height is a fundamental concept used to understand an individual's body composition in relation to their stature. It's not about determining an exact, single "correct" weight, but rather establishing a healthy or ideal weight range. This assessment is crucial for evaluating general health status, identifying potential weight-related health risks, and guiding lifestyle choices. The most common metric derived from weight and height is the Body Mass Index (BMI), which categorizes individuals into underweight, healthy weight, overweight, or obese classifications. Understanding your weight relative to your height provides a starting point for health discussions with medical professionals.
Who should use it? Anyone interested in their personal health and well-being can benefit from understanding their weight in relation to their height. This includes individuals looking to manage their weight, athletes monitoring body composition, parents tracking child development, and people seeking to reduce their risk of obesity-related diseases like heart disease, diabetes, and certain cancers. It's a foundational tool for a basic health assessment.
Common misconceptions include believing that a single "ideal" weight exists for everyone of a certain height, or that BMI is a definitive measure of health. BMI does not distinguish between muscle and fat mass, meaning a very muscular person might have a high BMI but be perfectly healthy. Furthermore, factors like age, body composition, muscle mass, bone density, and overall fitness level are not directly accounted for by simple weight-to-height calculations alone.
Weight Based on Height Formula and Mathematical Explanation
The primary method for calculating weight relative to height is the Body Mass Index (BMI). The formula standardizes weight and height to allow for comparison across different individuals. While BMI is the most widely recognized, other methods exist, but BMI remains the most accessible for general health screening.
The BMI Formula:
BMI = weight / (height * height)
It's essential to use consistent units. Typically, weight is measured in kilograms (kg) and height in meters (m).
Step-by-step derivation (using metric units):
Measure your weight accurately.
Measure your height accurately.
Convert your height to meters if it's not already in meters (e.g., 175 cm = 1.75 m).
Square your height in meters (height * height).
Divide your weight in kilograms by your height squared.
Variable explanations:
Variable
Meaning
Unit
Typical Range
Weight
The mass of the body.
Kilograms (kg) or Pounds (lbs)
Varies greatly by individual. For BMI calculation, kg is preferred.
Height
The vertical measurement of the body from the sole of the foot to the top of the head.
Meters (m), Centimeters (cm), Inches (in)
Varies greatly by individual. For BMI calculation, meters (m) is preferred.
BMI
Body Mass Index; a measure derived from weight and height.
When using imperial units (pounds and inches), the formula is adjusted by a conversion factor:
BMI = (weight in pounds / (height in inches * height in inches)) * 703
The constant 703 accounts for the conversion between metric and imperial units. Understanding how to calculate weight based on height is the first step towards managing your health.
Practical Examples (Real-World Use Cases)
Let's illustrate how to calculate weight based on height using practical scenarios.
Example 1: Metric Calculation
Scenario: Sarah is a 28-year-old woman who wants to calculate her BMI. She stands 165 cm tall and weighs 60 kg.
Inputs:
Height: 165 cm
Weight: 60 kg
Calculation Steps:
Convert height to meters: 165 cm / 100 = 1.65 m
Square the height: 1.65 m * 1.65 m = 2.7225 m²
Calculate BMI: 60 kg / 2.7225 m² = 22.04 kg/m²
Results:
Sarah's BMI is approximately 22.04.
Based on standard BMI classifications, 22.04 falls within the healthy weight range (18.5–24.9).
Interpretation: Sarah's current weight is considered healthy for her height, suggesting a good balance for her general health profile according to BMI standards.
Example 2: Imperial Calculation
Scenario: David is a 35-year-old man who measures his height as 5 feet 10 inches and weighs 185 pounds.
Inputs:
Height: 5 feet 10 inches
Weight: 185 lbs
Calculation Steps:
Convert total height to inches: (5 feet * 12 inches/foot) + 10 inches = 60 + 10 = 70 inches
Square the height in inches: 70 inches * 70 inches = 4900 in²
This BMI falls into the overweight category (25–29.9).
Interpretation: David's weight is considered above the healthy range for his height according to BMI. He might consider consulting a healthcare provider to discuss potential health implications and strategies for weight management. Understanding how to calculate weight based on height helps in identifying such situations.
How to Use This Weight Based on Height Calculator
Our **Weight Based on Height Calculator** is designed for simplicity and immediate feedback. Follow these steps to get your results:
Enter Your Height: Input your height in the provided field. Select the correct unit (cm, m, or inches). If you choose 'Feet & Inches', separate fields will appear for you to enter feet and then inches.
Select Your Biological Sex: Choose 'Male' or 'Female' from the dropdown menu. This is important as ideal weight ranges can differ slightly between sexes due to variations in body composition.
Click 'Calculate': Once your information is entered, click the 'Calculate' button.
How to read results:
Estimated Healthy Weight Range: This is your primary indicator, showing the weight range (in kg and lbs) typically considered healthy for your height and sex.
Body Mass Index (BMI): Your calculated BMI value and its corresponding health category (Underweight, Healthy Weight, Overweight, Obese).
Intermediate Metrics: You'll see values like weight per height unit and height squared, which are components of the BMI calculation.
Weight & Height Units Used: Confirms the units you selected for clarity.
Decision-making guidance: If your results indicate you are in the 'Underweight' or 'Overweight'/'Obese' categories, it's a signal to consult with a healthcare professional. They can provide personalized advice based on your specific health status, body composition, and lifestyle. This calculator provides a helpful starting point for these conversations.
Don't forget to explore the dynamic chart and table for a visual representation and further context. Use the 'Copy Results' button to easily share your findings or save them for later reference.
Key Factors That Affect Weight Based on Height Results
While the calculation of weight based on height, particularly BMI, provides a useful baseline, several other factors significantly influence an individual's health and body composition. These factors mean that BMI alone is not a complete picture of health.
Body Composition (Muscle vs. Fat): Muscle is denser than fat. A very muscular individual might have a higher weight and BMI but possess a lower body fat percentage and be healthier than someone with a lower BMI but higher body fat. This is a critical limitation of BMI.
Age: Metabolic rates and body composition change with age. Older adults may naturally have different body fat distributions or muscle mass compared to younger individuals, even at the same height and weight.
Genetics: Predispositions to certain body types, metabolic rates, and fat storage patterns are inherited. Some individuals may naturally carry more weight or have a different physique regardless of lifestyle choices.
Bone Density and Frame Size: People with larger bone structures or higher bone density will naturally weigh more than those with smaller frames, even if they are the same height.
Activity Level and Fitness: Regular physical activity influences muscle mass, bone density, and overall health markers. A fit individual with a higher weight due to muscle might be healthier than a sedentary individual with a lower weight.
Sex: Biological sex influences typical body composition, with males generally having more muscle mass and less body fat than females at the same height. This is why the calculator considers biological sex for ideal weight ranges.
Medical Conditions: Certain medical conditions (e.g., thyroid issues, hormonal imbalances, fluid retention) and medications can affect body weight independent of height.
Dietary Habits: Calorie intake and nutrient quality directly impact weight. A balanced diet supports healthy body composition.
Recognizing these factors is essential for a holistic approach to health beyond just a simple height-to-weight ratio. For accurate health assessments, always consult healthcare professionals.
Frequently Asked Questions (FAQ)
Q1: What is the ideal weight for someone who is 5'8″ tall?
A: For a height of 5'8″ (approximately 173 cm), the healthy weight range (BMI 18.5-24.9) is typically between 125 lbs (56.7 kg) and 169 lbs (76.7 kg). This can vary slightly based on biological sex and body composition. Use the calculator for a precise range.
Q2: Is BMI the only way to calculate ideal weight?
A: BMI is the most common screening tool, but it's not the only one. Other methods include waist-to-hip ratio, body fat percentage measurements, and ideal body weight formulas which can be more specific but are less universally applied for general assessment.
Q3: Does the calculator account for muscle mass?
A: The standard BMI calculation used by this calculator does not directly differentiate between muscle and fat. A very muscular person might have a BMI that classifies them as overweight, even if they are healthy. For precise body composition, consult a professional.
Q4: How often should I recalculate my weight based on height?
A: It's beneficial to recalculate your BMI periodically, perhaps every 6-12 months, or whenever you experience significant changes in weight, diet, or exercise habits. Consistent monitoring helps track trends.
Q5: Can children use this calculator?
A: This calculator is primarily designed for adults. Children's growth patterns are different, and their weight-for-height assessments require specialized growth charts (like WHO or CDC charts) that consider age and sex.
Q6: What does it mean if my BMI is in the healthy range but I feel unhealthy?
A: A healthy BMI is a good indicator, but not the sole determinant of health. If you have concerns, it's crucial to discuss them with a doctor. Other factors like energy levels, fitness, diet quality, and existing medical conditions play significant roles.
Q7: How does height influence ideal weight?
A: Taller individuals generally have a wider healthy weight range compared to shorter individuals because they have a larger frame and potentially more muscle mass and bone density. The BMI formula inherently scales for height squared.
Q8: Are the ideal weight ranges different for men and women?
A: Yes, generally. On average, biological males tend to have a higher muscle mass percentage and lower body fat percentage than biological females at the same height. This results in slightly different ideal weight ranges for men and women.
Related Tools and Internal Resources
BMI Calculator: A dedicated tool for calculating and understanding your Body Mass Index.
Calorie Needs Calculator: Estimate your daily caloric requirements based on your activity level, age, and weight.
var heightInput = document.getElementById('heightInput');
var heightUnitSelect = document.getElementById('heightUnit');
var heightError = document.getElementById('heightError');
var feetInchesGroup = document.getElementById('feet-inches-group');
var heightFeetInput = document.getElementById('heightFeet');
var heightInchesInput = document.getElementById('heightInches');
var feetError = document.getElementById('feetError');
var genderSelect = document.getElementById('gender');
var bmiResultDiv = document.getElementById('bmiResult');
var bmiValueSpan = document.getElementById('bmiValue');
var weightPerHeightSpan = document.getElementById('weightPerHeight');
var heightSquaredSpan = document.getElementById('heightSquared');
var weightUnitDisplaySpan = document.getElementById('weightUnitDisplay');
var heightUnitDisplaySpan = document.getElementById('heightUnitDisplay');
var genderDisplaySpan = document.getElementById('genderDisplay');
var bmiChartCanvas = document.getElementById('bmiChart');
var bmiChartInstance = null; // To store the chart instance
var MIN_HEIGHT_CM = 50;
var MAX_HEIGHT_CM = 250;
var MIN_WEIGHT_KG = 20;
var MAX_WEIGHT_KG = 500;
var MIN_FEET = 1;
var MAX_FEET = 8;
var MIN_INCHES = 0;
var MAX_INCHES = 11.99;
var MALES_MALE_WEIGHT_KG_LOW = 50;
var MALES_MALE_WEIGHT_KG_HIGH = 100;
var MALES_FEMALE_WEIGHT_KG_LOW = 45;
var MALES_FEMALE_WEIGHT_KG_HIGH = 90;
var bmiCategories = {
underweight: { limit: 18.5, label: "Underweight", color: "#ffc107" },
healthy: { limit: 24.9, label: "Healthy Weight", color: "var(–success-color)" },
overweight: { limit: 29.9, label: "Overweight", color: "#fd7e14" },
obese: { limit: Infinity, label: "Obese", color: "#dc3545″ }
};
function convertHeightToCm(value, unit) {
if (unit === 'cm') return value;
if (unit === 'm') return value * 100;
if (unit === 'in') return value * 2.54;
return null; // Should not happen
}
function convertHeightToMeters(value, unit) {
if (unit === 'm') return value;
if (unit === 'cm') return value / 100;
if (unit === 'in') return value * 0.0254;
return null; // Should not happen
}
function convertWeightToKg(value, unit) {
// Assuming the calculator will always output in kg internally,
// but this function could be expanded if lbs were a primary input.
// For now, we assume inputs are directly convertible or already in target units.
return value; // If input is already kg
}
function getWeightAndHeightKgCm() {
var heightVal = parseFloat(heightInput.value);
var heightUnit = heightUnitSelect.value;
var gender = genderSelect.value;
var currentWeightKg = null;
var currentHeightCm = null;
var errors = [];
// Clear previous errors
heightError.textContent = ";
feetError.textContent = ";
if (heightUnit === 'ft') {
var feetVal = parseFloat(heightFeetInput.value);
var inchesVal = parseFloat(heightInchesInput.value);
if (isNaN(feetVal) || isNaN(inchesVal)) {
errors.push("Please enter both feet and inches.");
} else {
if (feetVal MAX_FEET) {
errors.push("Feet must be between " + MIN_FEET + " and " + MAX_FEET + ".");
}
if (inchesVal = MAX_INCHES) {
errors.push("Inches must be between " + MIN_INCHES + " and " + MAX_INCHES + ".");
}
if (errors.length === 0) {
var totalInches = (feetVal * 12) + inchesVal;
currentHeightCm = totalInches * 2.54;
}
}
} else {
if (isNaN(heightVal) || heightVal <= 0) {
errors.push("Please enter a valid height.");
} else {
if (heightVal < MIN_HEIGHT_CM && heightUnit === 'cm') errors.push("Height seems too low for cm.");
if (heightVal < 0.5 && heightUnit === 'm') errors.push("Height seems too low for meters.");
if (heightVal MAX_HEIGHT_CM && heightUnit === 'cm') errors.push("Height seems too high for cm.");
if (heightVal > 2.5 && heightUnit === 'm') errors.push("Height seems too high for meters.");
if (heightVal > 98 && heightUnit === 'in') errors.push("Height seems too high for inches.");
if (errors.length === 0) {
currentHeightCm = convertHeightToCm(heightVal, heightUnit);
}
}
}
// Hypothetical weight input (if we had one)
// For this calculator, we'll derive a *healthy* weight range, not calculate *actual* weight.
// But if we had a weight input:
// var weightInputElem = document.getElementById('weightInput'); // Example
// var weightVal = parseFloat(weightInputElem.value);
// var weightUnit = document.getElementById('weightUnit').value; // Example
// if (isNaN(weightVal) || weightVal 0) {
if (heightUnit === 'ft') {
feetError.textContent = errors.join(' ');
} else {
heightError.textContent = errors.join(' ');
}
return { weightKg: null, heightCm: null, errors: errors };
}
return { weightKg: null, heightCm: currentHeightCm, errors: [] };
}
function getIdealWeightRange(heightCm, gender) {
var heightM = heightCm / 100;
var heightSquared = heightM * heightM;
var minBmi = 18.5;
var maxBmi = 24.9;
var minWeightKg = minBmi * heightSquared;
var maxWeightKg = maxBmi * heightSquared;
// Adjust ranges slightly based on sex if desired, or keep standard BMI
// For simplicity here, we use standard BMI range, but we can demonstrate
// how sex *could* influence it based on typical body composition differences.
var adjustedMinWeightKg = minWeightKg;
var adjustedMaxWeightKg = maxWeightKg;
// Example of potential adjustment (can be made more sophisticated)
if (gender === 'male') {
// Men often have more muscle mass, so range might be slightly higher end of BMI or adjusted.
// For simplicity, let's just nudge the lower bound a bit if it feels too low for typical male frame.
adjustedMinWeightKg = Math.max(minWeightKg, MALES_MALE_WEIGHT_KG_LOW * (heightM / 1.75)); // Rough scaling
adjustedMaxWeightKg = Math.max(maxWeightKg, MALES_MALE_WEIGHT_KG_HIGH * (heightM / 1.75));
} else { // female
adjustedMinWeightKg = Math.max(minWeightKg, MALES_FEMALE_WEIGHT_KG_LOW * (heightM / 1.65)); // Rough scaling
adjustedMaxWeightKg = Math.max(maxWeightKg, MALES_FEMALE_WEIGHT_KG_HIGH * (heightM / 1.65));
}
// Ensure bounds make sense and don't wildly exceed BMI ranges
adjustedMinWeightKg = Math.min(adjustedMinWeightKg, minWeightKg * 1.1); // Cap at 10% above min BMI weight
adjustedMaxWeightKg = Math.min(adjustedMaxWeightKg, maxWeightKg * 1.1); // Cap at 10% above max BMI weight
// Ensure lower bound isn't higher than upper bound after adjustments
if (adjustedMinWeightKg > adjustedMaxWeightKg) {
var temp = adjustedMinWeightKg;
adjustedMinWeightKg = adjustedMaxWeightKg;
adjustedMaxWeightKg = temp;
}
return {
lowKg: adjustedMinWeightKg,
highKg: adjustedMaxWeightKg,
lowLbs: adjustedMinWeightKg * 2.20462,
highLbs: adjustedMaxWeightKg * 2.20462
};
}
function calculateBmi(weightKg, heightCm) {
if (!weightKg || !heightCm || heightCm <= 0) return null;
var heightM = heightCm / 100;
var bmi = weightKg / (heightM * heightM);
return bmi;
}
function getBmiCategory(bmi) {
if (bmi === null) return { label: '–', color: '#ccc' };
if (bmi < bmiCategories.underweight.limit) return bmiCategories.underweight;
if (bmi < bmiCategories.healthy.limit) return bmiCategories.healthy;
if (bmi < bmiCategories.overweight.limit) return bmiCategories.overweight;
return bmiCategories.obese;
}
function updateChart(heightCm, gender) {
if (bmiChartInstance) {
bmiChartInstance.destroy();
}
var ctx = bmiChartCanvas.getContext('2d');
var chartData = {
labels: [],
datasets: [{
label: 'Male Healthy Range',
data: [],
borderColor: 'rgba(0, 74, 153, 1)',
backgroundColor: 'rgba(0, 74, 153, 0.2)',
fill: false,
tension: 0.1
}, {
label: 'Female Healthy Range',
data: [],
borderColor: 'rgba(255, 99, 132, 1)',
backgroundColor: 'rgba(255, 99, 132, 0.2)',
fill: false,
tension: 0.1
}]
};
var baseHeight = heightCm || 170; // Use user's height or a default
var heightInterval = 10; // cm
var numIntervals = 10; // Show 10 intervals above and below
var maleLowRange = [];
var maleHighRange = [];
var femaleLowRange = [];
var femaleHighRange = [];
for (var i = -numIntervals; i 50 && currentHeight < 250) { // Valid height range
chartData.labels.push(currentHeight.toFixed(0) + " cm");
var currentHeightM = currentHeight / 100;
var currentHeightSquared = currentHeightM * currentHeightM;
var maleIdealRange = getIdealWeightRange(currentHeight, 'male');
maleLowRange.push(maleIdealRange.lowKg);
maleHighRange.push(maleIdealRange.highKg);
var femaleIdealRange = getIdealWeightRange(currentHeight, 'female');
femaleLowRange.push(femaleIdealRange.lowKg);
femaleHighRange.push(femaleIdealRange.highKg);
}
}
// Add the ranges to datasets
chartData.datasets[0].data = []; // Reset just in case
chartData.datasets[1].data = [];
// Create filled areas for ranges
var maleRangeData = [];
for(var j = 0; j = 0; j–) {
maleRangeDataUpper.push({
x: chartData.labels[j],
y: maleHighRange[j]
});
}
var femaleRangeData = [];
for(var j = 0; j = 0; j–) {
femaleRangeDataUpper.push({
x: chartData.labels[j],
y: femaleHighRange[j]
});
}
chartData.datasets[0].data = maleLowRange;
chartData.datasets[0].borderColor = 'rgba(0, 74, 153, 1)';
chartData.datasets[0].backgroundColor = 'rgba(0, 74, 153, 0.1)';
chartData.datasets[0].fill = '+1'; // Fill to the next dataset
chartData.datasets[1].data = femaleLowRange;
chartData.datasets[1].borderColor = 'rgba(255, 99, 132, 1)';
chartData.datasets[1].backgroundColor = 'rgba(255, 99, 132, 0.1)';
chartData.datasets[1].fill = '+1'; // Fill to the next dataset
// Add a third dataset for the upper bounds to create the filled area effect correctly
chartData.datasets.push({
label: 'Male Upper Bound',
data: maleHighRange,
borderColor: 'transparent',
backgroundColor: 'transparent',
fill: false
});
chartData.datasets.push({
label: 'Female Upper Bound',
data: femaleHighRange,
borderColor: 'transparent',
backgroundColor: 'transparent',
fill: false
});
// Adjust dataset indices for filling
chartData.datasets[0].fill = false; // Male Low range, will fill to the next dataset
chartData.datasets[1].fill = false; // Female Low range, will fill to the next dataset
chartData.datasets[2].fill = '+1'; // Male High range, fills Male Low to Male High
chartData.datasets[3].fill = '+1'; // Female High range, fills Female Low to Female High
bmiChartInstance = new Chart(ctx, {
type: 'line',
data: chartData,
options: {
responsive: true,
maintainAspectRatio: false,
scales: {
y: {
beginAtZero: true,
title: {
display: true,
text: 'Weight (kg)'
}
},
x: {
title: {
display: true,
text: 'Height (cm)'
}
}
},
plugins: {
legend: {
position: 'top',
},
title: {
display: true,
text: 'Healthy Weight Range by Height and Sex'
}
}
}
});
}
function updateWeightTable(heightCm, gender) {
var tableBody = document.getElementById('weightTableBody');
tableBody.innerHTML = "; // Clear existing rows
var startHeight = Math.max(50, heightCm – 50); // Start a bit below user's height
var endHeight = heightCm + 50; // End a bit above user's height
var step = 10; // Every 10 cm
if (startHeight 250) endHeight = 250;
for (var h = startHeight; h <= endHeight; h += step) {
if (h 250) continue; // Skip invalid heights
var maleRange = getIdealWeightRange(h, 'male');
var femaleRange = getIdealWeightRange(h, 'female');
var row = tableBody.insertRow();
var cellHeight = row.insertCell(0);
var cellMaleWeight = row.insertCell(1);
var cellFemaleWeight = row.insertCell(2);
cellHeight.textContent = h.toFixed(0) + " cm";
cellMaleWeight.textContent = maleRange.lowKg.toFixed(1) + " – " + maleRange.highKg.toFixed(1) + " kg";
cellFemaleWeight.textContent = femaleRange.lowKg.toFixed(1) + " – " + femaleRange.highKg.toFixed(1) + " kg";
}
}
function formatWeightRange(lowKg, highKg) {
var lowLbs = lowKg * 2.20462;
var highLbs = highKg * 2.20462;
return lowKg.toFixed(1) + " kg – " + highKg.toFixed(1) + " kg (" + lowLbs.toFixed(1) + " lbs – " + highLbs.toFixed(1) + " lbs)";
}
function calculateWeight() {
var data = getWeightAndHeightKgCm();
var errors = data.errors;
if (errors.length > 0) {
bmiResultDiv.innerHTML = '
Errors: ' + errors.join(") + '
';
bmiValueSpan.textContent = '–';
weightPerHeightSpan.textContent = '–';
heightSquaredSpan.textContent = '–';
return;
}
var heightCm = data.heightCm;
var gender = genderSelect.value;
// Since we're calculating an ideal range, we don't have a "current weight".
// Instead, we calculate the ideal range and the BMI for the midpoint of that range,
// or simply display the range and the components needed for BMI calculation.
var idealWeightRange = getIdealWeightRange(heightCm, gender);
var midPointWeightKg = (idealWeightRange.lowKg + idealWeightRange.highKg) / 2;
var bmiForMidPoint = calculateBmi(midPointWeightKg, heightCm);
var bmiCategory = getBmiCategory(bmiForMidPoint);
var heightM = heightCm / 100;
var heightSquared = heightM * heightM;
bmiResultDiv.innerHTML = '