How to Calculate Weight According to BMI – Professional Calculator & Guide
:root {
–primary: #004a99;
–secondary: #003366;
–success: #28a745;
–warning: #ffc107;
–danger: #dc3545;
–light: #f8f9fa;
–dark: #343a40;
–border: #dee2e6;
–shadow: 0 4px 6px rgba(0,0,0,0.1);
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
line-height: 1.6;
color: #333;
background-color: var(–light);
}
.container {
max-width: 960px;
margin: 0 auto;
padding: 20px;
}
/* Header */
header {
text-align: center;
margin-bottom: 40px;
padding: 40px 0;
background: white;
border-bottom: 1px solid var(–border);
}
h1 {
color: var(–primary);
font-size: 2.5rem;
margin-bottom: 10px;
}
.subtitle {
color: #666;
font-size: 1.1rem;
}
/* Calculator Section */
.loan-calc-container {
background: white;
padding: 30px;
border-radius: 8px;
box-shadow: var(–shadow);
margin-bottom: 50px;
border-top: 5px solid var(–primary);
}
.calc-grid {
display: block; /* Single column enforced */
}
.input-section {
margin-bottom: 30px;
}
.input-group {
margin-bottom: 20px;
}
.input-group label {
display: block;
font-weight: 600;
margin-bottom: 8px;
color: var(–dark);
}
.input-wrapper {
position: relative;
display: flex;
align-items: center;
}
.input-wrapper input, .input-wrapper select {
width: 100%;
padding: 12px;
border: 1px solid var(–border);
border-radius: 4px;
font-size: 16px;
transition: border-color 0.3s;
}
.input-wrapper input:focus, .input-wrapper select:focus {
outline: none;
border-color: var(–primary);
box-shadow: 0 0 0 3px rgba(0, 74, 153, 0.1);
}
.unit-label {
position: absolute;
right: 12px;
color: #666;
pointer-events: none;
}
.helper-text {
font-size: 0.85rem;
color: #666;
margin-top: 5px;
}
.error-msg {
color: var(–danger);
font-size: 0.85rem;
margin-top: 5px;
display: none;
}
.btn-group {
display: flex;
gap: 10px;
margin-top: 20px;
}
.btn {
padding: 12px 24px;
border: none;
border-radius: 4px;
cursor: pointer;
font-weight: 600;
font-size: 16px;
transition: background 0.3s;
}
.btn-primary {
background: var(–primary);
color: white;
flex: 2;
}
.btn-primary:hover {
background: var(–secondary);
}
.btn-outline {
background: transparent;
border: 1px solid var(–border);
color: #666;
flex: 1;
}
.btn-outline:hover {
background: #f1f1f1;
}
/* Results Section */
.results-section {
background: #f8f9fa;
padding: 25px;
border-radius: 6px;
border: 1px solid var(–border);
margin-top: 30px;
}
.main-result {
text-align: center;
margin-bottom: 25px;
padding-bottom: 20px;
border-bottom: 1px solid var(–border);
}
.main-result h3 {
color: #666;
font-size: 1rem;
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 10px;
}
.result-value {
font-size: 3rem;
font-weight: 700;
color: var(–primary);
}
.result-sub {
font-size: 1.1rem;
color: var(–success);
font-weight: 500;
}
.metrics-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
margin-bottom: 25px;
}
.metric-card {
background: white;
padding: 15px;
border-radius: 4px;
border: 1px solid var(–border);
text-align: center;
}
.metric-label {
font-size: 0.9rem;
color: #666;
margin-bottom: 5px;
}
.metric-value {
font-size: 1.25rem;
font-weight: 600;
color: var(–dark);
}
/* Chart & Table */
.chart-container {
margin: 30px 0;
background: white;
padding: 15px;
border: 1px solid var(–border);
border-radius: 4px;
height: 300px;
position: relative;
}
canvas {
width: 100%;
height: 100%;
}
.data-table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
font-size: 0.95rem;
}
.data-table th, .data-table td {
padding: 12px;
text-align: left;
border-bottom: 1px solid var(–border);
}
.data-table th {
background-color: #f1f1f1;
font-weight: 600;
color: var(–dark);
}
.data-table caption {
caption-side: bottom;
padding: 10px;
font-style: italic;
color: #666;
font-size: 0.85rem;
}
/* Article Content */
.content-section {
background: white;
padding: 40px;
border-radius: 8px;
box-shadow: var(–shadow);
}
.content-section h2 {
color: var(–primary);
margin-top: 30px;
margin-bottom: 15px;
font-size: 1.8rem;
border-bottom: 2px solid #f1f1f1;
padding-bottom: 10px;
}
.content-section h3 {
color: var(–secondary);
margin-top: 25px;
margin-bottom: 10px;
font-size: 1.4rem;
}
.content-section p {
margin-bottom: 15px;
color: #444;
}
.content-section ul, .content-section ol {
margin-bottom: 20px;
padding-left: 25px;
}
.content-section li {
margin-bottom: 8px;
}
.variable-table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
.variable-table th, .variable-table td {
border: 1px solid var(–border);
padding: 10px;
text-align: left;
}
.variable-table th {
background-color: #e9ecef;
}
.faq-item {
margin-bottom: 20px;
border-bottom: 1px solid #eee;
padding-bottom: 20px;
}
.faq-question {
font-weight: 700;
color: var(–primary);
margin-bottom: 8px;
display: block;
}
.related-links {
background: #f8f9fa;
padding: 20px;
border-radius: 6px;
margin-top: 30px;
}
.related-links ul {
list-style: none;
padding: 0;
}
.related-links li {
margin-bottom: 10px;
}
.related-links a {
color: var(–primary);
text-decoration: none;
font-weight: 600;
}
.related-links a:hover {
text-decoration: underline;
}
/* Responsive */
@media (max-width: 600px) {
h1 { font-size: 2rem; }
.content-section { padding: 20px; }
.loan-calc-container { padding: 20px; }
.metrics-grid { grid-template-columns: 1fr; }
}
Healthy Weight Range
56.7 – 76.3 kg
Target BMI Category
Normal
Weight ranges calculated based on your height.
| BMI Category |
BMI Range |
Weight Range (kg) |
What is how to calculate weight according to bmi?
Understanding how to calculate weight according to bmi is a fundamental skill for personal health management and fitness planning. While most people are familiar with calculating BMI (Body Mass Index) from their weight and height, the reverse calculation—determining your ideal weight based on a specific BMI target—is equally valuable.
This process, often called a "Reverse BMI Calculation," allows individuals to set precise weight loss or weight gain goals. By selecting a target BMI (typically within the "Normal" range of 18.5 to 24.9), you can mathematically determine the exact weight required to reach that health metric given your specific height.
It is important to note that while this calculation provides a mathematically correct weight target, it does not account for body composition (muscle vs. fat). Therefore, it is best used as a general guideline rather than a strict rule for athletes or those with high muscle mass.
How to Calculate Weight According to BMI: Formula and Explanation
To understand how to calculate weight according to bmi, we must rearrange the standard BMI formula. The standard formula calculates BMI by dividing weight by height squared. To find the weight, we multiply the target BMI by the height squared.
The Formula
Weight = Target BMI × (Height)²
Depending on your unit system, the math varies slightly:
- Metric (kg/m): Weight (kg) = BMI × (Height in meters)²
- Imperial (lbs/in): Weight (lbs) = (BMI × (Height in inches)²) / 703
Variables Table
| Variable |
Meaning |
Unit (Metric) |
Unit (Imperial) |
| W |
Target Weight |
Kilograms (kg) |
Pounds (lbs) |
| BMI |
Body Mass Index |
kg/m² |
kg/m² |
| H |
Height |
Meters (m) |
Inches (in) |
| 703 |
Conversion Factor |
N/A |
Constant |
Practical Examples (Real-World Use Cases)
Here are two detailed examples illustrating how to calculate weight according to bmi in different scenarios.
Example 1: Metric System (Health Goal)
Scenario: Sarah is 1.65 meters tall. She wants to reach a BMI of 22, which is in the middle of the healthy range.
- Height: 1.65 m
- Target BMI: 22
- Calculation: 22 × (1.65)²
- Step 1: 1.65 × 1.65 = 2.7225
- Step 2: 22 × 2.7225 = 59.895
- Result: Sarah's target weight is approximately 59.9 kg.
Example 2: Imperial System (Fitness Planning)
Scenario: John is 5 feet 10 inches tall (70 inches). He currently has a BMI of 28 and wants to reduce it to 24.9 (the upper limit of normal).
- Height: 70 inches
- Target BMI: 24.9
- Calculation: (24.9 × 70²) / 703
- Step 1: 70 × 70 = 4,900
- Step 2: 24.9 × 4,900 = 122,010
- Step 3: 122,010 / 703 = 173.55
- Result: John needs to reach approximately 173.6 lbs.
How to Use This Calculator
Our tool simplifies the process of how to calculate weight according to bmi. Follow these steps:
- Select Unit System: Choose between Metric (kg/cm) or Imperial (lbs/ft).
- Enter Height: Input your accurate height. Small differences in height significantly affect the target weight.
- Set Target BMI: The default is 22 (mid-normal). You can adjust this to see weights for different BMI thresholds (e.g., 25 for Overweight threshold).
- Enter Current Weight (Optional): If you input your current weight, the calculator will tell you exactly how much you need to lose or gain to hit your target.
- Analyze Results: Review the "Target Weight" and the dynamic chart to see where your goal sits relative to healthy ranges.
Key Factors That Affect BMI Results
When learning how to calculate weight according to bmi, it is crucial to understand the limitations and external factors that influence the result.
- Muscle Mass: Muscle is denser than fat. A bodybuilder may have a high BMI but low body fat. This calculator provides a weight based on generic mass, not composition.
- Age: Older adults often lose muscle and gain fat. A "normal" BMI might still mask metabolic obesity in the elderly.
- Gender: Women naturally have higher essential body fat percentages than men. While the BMI formula is the same for both, the health implications at specific BMI points can differ.
- Bone Structure: Individuals with larger frames may naturally weigh more, pushing their BMI higher even if they are healthy.
- Ethnicity: Research suggests that health risks associated with BMI vary by ethnicity. For example, Asian populations may experience health risks at lower BMI thresholds (often >23 is considered overweight).
- Pregnancy: BMI calculations are not applicable during pregnancy. Weight gain guidelines for pregnancy are distinct and should be discussed with a doctor.
Frequently Asked Questions (FAQ)
Is BMI the best way to determine healthy weight?
BMI is a useful screening tool for the general population but is not a diagnostic of body fatness or health. It does not distinguish between muscle and fat.
What is the healthiest BMI to aim for?
Generally, a BMI between 18.5 and 24.9 is considered "Normal." Many doctors suggest aiming for the middle of this range (21-23) for optimal longevity, though this varies by individual.
Can I use this calculator for children?
No. Children and teens use BMI-for-age percentiles. This calculator is designed for adults aged 20 and older.
Why does the calculator show a weight range?
Because the "Normal" BMI category spans from 18.5 to 24.9, there is a range of weights that are considered healthy for any given height, often spanning 15-20kg (30-40lbs).
How do I calculate weight according to BMI manually?
Multiply your height in meters by itself, then multiply that number by your desired BMI. For example: 1.8m * 1.8m * 22 BMI = 71.28 kg.
Does this calculator account for gender?
The standard BMI formula used here is unisex. However, interpretation of the results (body fat percentage) differs between men and women.
What if my target weight seems too low?
If you have high muscle mass, a "Normal" BMI weight might be too low for you. Consult a fitness professional to determine a realistic weight goal based on body composition.
How often should I check my BMI?
Checking once a month is sufficient. Weight fluctuates daily due to water retention, so daily checking can be misleading.
Related Tools and Internal Resources
// Global Variables
var chartInstance = null;
// Initialize
window.onload = function() {
calculate();
};
function toggleUnits() {
var system = document.getElementById('unitSystem').value;
var metricGroup = document.getElementById('metricHeightGroup');
var impGroup = document.getElementById('imperialHeightGroup');
var weightLabel = document.getElementById('weightUnitLabel');
var tableUnit = document.getElementById('tableUnit');
if (system === 'metric') {
metricGroup.style.display = 'block';
impGroup.style.display = 'none';
weightLabel.innerText = 'kg';
tableUnit.innerText = 'kg';
// Convert current imperial height to metric for continuity
var ft = parseFloat(document.getElementById('heightFt').value) || 0;
var inch = parseFloat(document.getElementById('heightIn').value) || 0;
var totalInches = (ft * 12) + inch;
var cm = totalInches * 2.54;
document.getElementById('heightCm').value = Math.round(cm);
} else {
metricGroup.style.display = 'none';
impGroup.style.display = 'block'; // Changed to block to fix layout
weightLabel.innerText = 'lbs';
tableUnit.innerText = 'lbs';
// Convert current metric to imperial
var cm = parseFloat(document.getElementById('heightCm').value) || 0;
var totalInches = cm / 2.54;
var ft = Math.floor(totalInches / 12);
var inch = Math.round(totalInches % 12);
document.getElementById('heightFt').value = ft;
document.getElementById('heightIn').value = inch;
}
calculate();
}
function calculate() {
var system = document.getElementById('unitSystem').value;
var targetBMI = parseFloat(document.getElementById('targetBMI').value);
var currentWeight = parseFloat(document.getElementById('currentWeight').value);
var heightM = 0;
var heightIn = 0;
var targetWeight = 0;
var unit = "";
// Validation
if (isNaN(targetBMI) || targetBMI <= 0) {
document.getElementById('bmiError').style.display = 'block';
return;
} else {
document.getElementById('bmiError').style.display = 'none';
}
// Height Calculation
if (system === 'metric') {
var cm = parseFloat(document.getElementById('heightCm').value);
if (isNaN(cm) || cm <= 0) {
document.getElementById('heightCmError').style.display = 'block';
return;
}
document.getElementById('heightCmError').style.display = 'none';
heightM = cm / 100;
targetWeight = targetBMI * (heightM * heightM);
unit = "kg";
} else {
var ft = parseFloat(document.getElementById('heightFt').value);
var inch = parseFloat(document.getElementById('heightIn').value);
if (isNaN(ft) || isNaN(inch) || ft < 0 || inch 0) {
var diff = targetWeight – currentWeight;
var action = diff > 0 ? "Gain" : "Lose";
diffElem.innerText = "You need to " + action + " " + Math.abs(diff).toFixed(1) + " " + unit;
// Calculate Current BMI
var currentBMI = 0;
if (system === 'metric') {
currentBMI = currentWeight / (heightM * heightM);
} else {
currentBMI = (currentWeight * 703) / (heightIn * heightIn);
}
currentBMIElem.innerText = currentBMI.toFixed(1);
} else {
diffElem.innerText = "Enter current weight to see difference";
currentBMIElem.innerText = "–";
}
// Update Metrics
var minWeight, maxWeight;
if (system === 'metric') {
minWeight = 18.5 * (heightM * heightM);
maxWeight = 24.9 * (heightM * heightM);
} else {
minWeight = (18.5 * heightIn * heightIn) / 703;
maxWeight = (24.9 * heightIn * heightIn) / 703;
}
document.getElementById('healthyRange').innerText = minWeight.toFixed(1) + " – " + maxWeight.toFixed(1) + " " + unit;
var category = getBMICategory(targetBMI);
document.getElementById('bmiCategory').innerText = category;
document.getElementById('bmiCategory').style.color = getCategoryColor(category);
updateTable(heightM, system);
drawChart(minWeight, maxWeight, targetWeight, unit);
}
function getBMICategory(bmi) {
if (bmi < 18.5) return "Underweight";
if (bmi < 25) return "Normal";
if (bmi < 30) return "Overweight";
return "Obese";
}
function getCategoryColor(category) {
if (category === "Normal") return "#28a745";
if (category === "Underweight") return "#17a2b8";
if (category === "Overweight") return "#ffc107";
return "#dc3545";
}
function updateTable(heightM, system) {
var tbody = document.getElementById('rangeTableBody');
tbody.innerHTML = "";
var ranges = [
{ cat: "Underweight", min: 0, max: 18.5 },
{ cat: "Normal", min: 18.5, max: 25 },
{ cat: "Overweight", min: 25, max: 30 },
{ cat: "Obese", min: 30, max: 100 }
];
for (var i = 0; i < ranges.length; i++) {
var r = ranges[i];
var wMin, wMax;
if (system === 'metric') {
wMin = r.min * heightM * heightM;
wMax = r.max * heightM * heightM;
} else {
// heightM to inches
var hIn = heightM * 39.3701;
wMin = (r.min * hIn * hIn) / 703;
wMax = (r.max * hIn * hIn) / 703;
}
var rangeStr = "";
if (r.min === 0) rangeStr = " " + wMin.toFixed(1);
else rangeStr = wMin.toFixed(1) + " – " + wMax.toFixed(1);
var bmiRangeStr = "";
if (r.min === 0) bmiRangeStr = " 30.0″;
else bmiRangeStr = r.min + " – " + r.max;
var row = "
| " + r.cat + " | " + bmiRangeStr + " | " + rangeStr + " |
";
tbody.innerHTML += row;
}
}
function drawChart(minNormal, maxNormal, targetW, unit) {
var canvas = document.getElementById('bmiChart');
var ctx = canvas.getContext('2d');
// Handle High DPI
var dpr = window.devicePixelRatio || 1;
var rect = canvas.getBoundingClientRect();
canvas.width = rect.width * dpr;
canvas.height = rect.height * dpr;
ctx.scale(dpr, dpr);
var width = rect.width;
var height = rect.height;
// Clear
ctx.clearRect(0, 0, width, height);
// Margins
var marginLeft = 60;
var marginBottom = 40;
var chartW = width – marginLeft – 20;
var chartH = height – marginBottom – 20;
// Scale
// Max Y should cover Obese start (approx 1.5x maxNormal)
var maxY = maxNormal * 1.5;
var scaleY = chartH / maxY;
// Draw Axes
ctx.beginPath();
ctx.moveTo(marginLeft, 20);
ctx.lineTo(marginLeft, height – marginBottom);
ctx.lineTo(width, height – marginBottom);
ctx.strokeStyle = "#333";
ctx.stroke();
// Draw Bars (Underweight, Normal, Overweight, Obese)
// We will draw stacked bars representing the ranges
var barWidth = chartW / 5;
var xPos = marginLeft + (chartW / 2) – (barWidth / 2);
// Define thresholds in weight
var w18_5 = minNormal;
var w25 = maxNormal;
var w30 = (30 / 25) * maxNormal; // Approx
// Draw Zones Background
// Underweight
ctx.fillStyle = "rgba(23, 162, 184, 0.3)";
ctx.fillRect(marginLeft, height – marginBottom – (w18_5 * scaleY), chartW, w18_5 * scaleY);
// Normal
ctx.fillStyle = "rgba(40, 167, 69, 0.3)";
ctx.fillRect(marginLeft, height – marginBottom – (w25 * scaleY), chartW, (w25 – w18_5) * scaleY);
// Overweight
ctx.fillStyle = "rgba(255, 193, 7, 0.3)";
ctx.fillRect(marginLeft, height – marginBottom – (w30 * scaleY), chartW, (w30 – w25) * scaleY);
// Obese
ctx.fillStyle = "rgba(220, 53, 69, 0.3)";
ctx.fillRect(marginLeft, 20, chartW, (height – marginBottom – (w30 * scaleY)) – 20);
// Draw Target Line
var targetY = height – marginBottom – (targetW * scaleY);
// Clamp targetY
if (targetY < 20) targetY = 20;
ctx.beginPath();
ctx.moveTo(marginLeft, targetY);
ctx.lineTo(width, targetY);
ctx.strokeStyle = "#004a99";
ctx.lineWidth = 3;
ctx.setLineDash([5, 5]);
ctx.stroke();
ctx.setLineDash([]);
// Label Target
ctx.fillStyle = "#004a99";
ctx.font = "bold 14px sans-serif";
ctx.fillText("Target: " + targetW.toFixed(1) + unit, marginLeft + 10, targetY – 10);
// Y Axis Labels
ctx.fillStyle = "#666";
ctx.font = "12px sans-serif";
ctx.textAlign = "right";
var steps = 5;
for (var i = 0; i <= steps; i++) {
var val = (maxY / steps) * i;
var y = height – marginBottom – (val * scaleY);
ctx.fillText(Math.round(val), marginLeft – 10, y + 4);
}
// Legend
ctx.textAlign = "left";
ctx.fillStyle = "#333";
ctx.fillText("Weight (" + unit + ") Zones", marginLeft + 10, 15);
}
function copyResults() {
var weight = document.getElementById('resultWeight').innerText;
var range = document.getElementById('healthyRange').innerText;
var bmi = document.getElementById('targetBMI').value;
var text = "My Target Weight Calculation:\n";
text += "Target BMI: " + bmi + "\n";
text += "Target Weight: " + weight + "\n";
text += "Healthy Range: " + range + "\n";
text += "Calculated using the 'How to Calculate Weight According to BMI' Tool.";
var tempInput = document.createElement("textarea");
tempInput.value = text;
document.body.appendChild(tempInput);
tempInput.select();
document.execCommand("copy");
document.body.removeChild(tempInput);
var btn = document.querySelector('.btn-primary');
var originalText = btn.innerText;
btn.innerText = "Copied!";
setTimeout(function() { btn.innerText = originalText; }, 2000);
}
function resetCalc() {
document.getElementById('targetBMI').value = 22;
document.getElementById('currentWeight').value = "";
document.getElementById('heightCm').value = 175;
document.getElementById('heightFt').value = 5;
document.getElementById('heightIn').value = 9;
calculate();
}