Calculate the molar mass of a chemical compound by entering its chemical formula.
Molar Mass: N/A g/mol
Understanding Molar Mass Calculation
Molar mass is a fundamental property of a chemical substance, defined as the mass of one mole of that substance. It is expressed in grams per mole (g/mol). Calculating the molar mass of a compound involves summing the atomic masses of all the atoms present in its chemical formula.
To perform this calculation, you need the chemical formula of the compound and a periodic table to find the atomic masses of each element. The atomic mass is typically found below the element's symbol on the periodic table and is usually given in atomic mass units (amu), which are numerically equivalent to grams per mole (g/mol) for practical molar mass calculations.
How it Works:
Identify Elements and Counts: Break down the chemical formula into its constituent elements. For each element, determine the number of atoms present. For example, in H₂O, there are 2 hydrogen (H) atoms and 1 oxygen (O) atom. In C₆H₁₂O₆, there are 6 carbon (C) atoms, 12 hydrogen (H) atoms, and 6 oxygen (O) atoms. Parentheses indicate groups of atoms, where the subscript outside the parenthesis multiplies all atoms inside it (e.g., Ca(OH)₂ has 1 calcium, 2 oxygen, and 2 hydrogen atoms).
Find Atomic Masses: Look up the average atomic mass for each element using a periodic table. These values are usually given in g/mol.
Hydrogen (H): approximately 1.008 g/mol
Oxygen (O): approximately 15.999 g/mol
Carbon (C): approximately 12.011 g/mol
Sulfur (S): approximately 32.06 g/mol
Copper (Cu): approximately 63.55 g/mol
Calcium (Ca): approximately 40.08 g/mol
Calculate Total Mass: For each element, multiply its atomic mass by the number of atoms of that element in the formula.
Sum the Masses: Add up the masses calculated for each element to get the total molar mass of the compound.
Example Calculation: Water (H₂O)
Atomic mass of Hydrogen (H) ≈ 1.008 g/mol
Atomic mass of Oxygen (O) ≈ 15.999 g/mol
Molar Mass of H₂O = (2 × Atomic mass of H) + (1 × Atomic mass of O)
Molar Mass of H₂O = (2 × 1.008 g/mol) + (1 × 15.999 g/mol)
Molar Mass of H₂O = 2.016 g/mol + 15.999 g/mol
Molar Mass of H₂O ≈ 18.015 g/mol
Example Calculation: Copper(II) Sulfate (CuSO₄)
Atomic mass of Copper (Cu) ≈ 63.55 g/mol
Atomic mass of Sulfur (S) ≈ 32.06 g/mol
Atomic mass of Oxygen (O) ≈ 15.999 g/mol
Molar Mass of CuSO₄ = (1 × Atomic mass of Cu) + (1 × Atomic mass of S) + (4 × Atomic mass of O)
Molar Mass of CuSO₄ = (1 × 63.55 g/mol) + (1 × 32.06 g/mol) + (4 × 15.999 g/mol)
Molar Mass of CuSO₄ = 63.55 g/mol + 32.06 g/mol + 63.996 g/mol
Molar Mass of CuSO₄ ≈ 159.606 g/mol
This calculator automates this process, allowing you to quickly find the molar mass of various chemical compounds.
// Atomic masses of common elements (approximate values in g/mol)
// This is a simplified list; a comprehensive calculator would use a more extensive database.
var atomicMasses = {
'H': 1.008, 'He': 4.003, 'Li': 6.941, 'Be': 9.012, 'B': 10.811,
'C': 12.011, 'N': 14.007, 'O': 15.999, 'F': 18.998, 'Ne': 20.180,
'Na': 22.990, 'Mg': 24.305, 'Al': 26.982, 'Si': 28.086, 'P': 30.974,
'S': 32.06, 'Cl': 35.45, 'Ar': 39.948, 'K': 39.098, 'Ca': 40.078,
'Sc': 44.956, 'Ti': 47.867, 'V': 50.942, 'Cr': 51.996, 'Mn': 54.938,
'Fe': 55.845, 'Co': 58.933, 'Ni': 58.693, 'Cu': 63.55, 'Zn': 65.38,
'Ga': 69.723, 'Ge': 72.630, 'As': 74.922, 'Se': 78.971, 'Br': 79.904,
'Kr': 83.798, 'Rb': 85.468, 'Sr': 87.62, 'Y': 88.906, 'Zr': 91.224,
'Nb': 92.906, 'Mo': 95.95, 'Tc': 98.0, 'Ru': 101.07, 'Rh': 102.906,
'Pd': 106.42, 'Ag': 107.868, 'Cd': 112.414, 'In': 114.818, 'Sn': 118.710,
'Sb': 121.760, 'Te': 127.60, 'I': 126.904, 'Xe': 131.29, 'Cs': 132.905,
'Ba': 137.327, 'La': 138.905, 'Ce': 140.116, 'Pr': 140.908, 'Nd': 144.242,
'Pm': 145.0, 'Sm': 150.36, 'Eu': 151.964, 'Gd': 157.25, 'Tb': 158.925,
'Dy': 162.500, 'Ho': 164.930, 'Er': 167.259, 'Tm': 168.934, 'Yb': 173.054,
'Lu': 174.966, 'Hf': 178.49, 'Ta': 180.948, 'W': 183.84, 'Re': 186.207,
'Os': 190.23, 'Ir': 192.217, 'Pt': 195.084, 'Au': 196.967, 'Hg': 200.59,
'Tl': 204.38, 'Pb': 207.2, 'Bi': 208.980, 'Po': 209.0, 'At': 210.0,
'Rn': 222.0, 'Fr': 223.0, 'Ra': 226.0, 'Ac': 227.0, 'Th': 232.038,
'Pa': 231.036, 'U': 238.029, 'Np': 237.0, 'Pu': 244.0, 'Am': 243.0,
'Cm': 247.0, 'Bk': 247.0, 'Cf': 251.0, 'Es': 252.0, 'Fm': 257.0,
'Md': 258.0, 'No': 259.0, 'Lr': 262.0, 'Rf': 267.0, 'Db': 268.0,
'Sg': 271.0, 'Bh': 272.0, 'Hs': 269.0, 'Mt': 277.0, 'Ds': 281.0,
'Rg': 280.0, 'Cn': 285.0, 'Nh': 286.0, 'Fl': 289.0, 'Mc': 290.0,
'Lv': 293.0, 'Ts': 294.0, 'Og': 294.0
};
function calculateMolarMass() {
var formulaInput = document.getElementById('chemicalFormula');
var formula = formulaInput.value.trim();
var resultSpan = document.getElementById('result').getElementsByTagName('span')[0];
if (!formula) {
resultSpan.textContent = "Invalid input";
return;
}
var totalMolarMass = 0;
var currentElement = ";
var currentCountStr = ";
var inParenthesis = false;
var parenthesisElementCounts = {}; // To store counts within the current parenthesis
var parenthesisMultiplier = 1;
var i = 0;
while (i < formula.length) {
var char = formula[i];
if (char === '(') {
inParenthesis = true;
parenthesisMultiplier = 1; // Reset multiplier for new parenthesis group
currentElement = ''; // Clear current element being built
currentCountStr = ''; // Clear current count string
i++;
continue;
} else if (char === ')') {
inParenthesis = false;
// Process the count immediately following the parenthesis
i++;
currentCountStr = '';
while (i < formula.length && /\d/.test(formula[i])) {
currentCountStr += formula[i];
i++;
}
parenthesisMultiplier = parseInt(currentCountStr || '1', 10);
// Add the counts from inside the parenthesis, multiplied by the outer multiplier
for (var element in parenthesisElementCounts) {
var count = parenthesisElementCounts[element] * parenthesisMultiplier;
if (atomicMasses[element]) {
totalMolarMass += atomicMasses[element] * count;
} else {
resultSpan.textContent = "Unknown element";
return;
}
}
parenthesisElementCounts = {}; // Clear parenthesis counts
currentElement = ''; // Clear current element being built
currentCountStr = ''; // Clear current count string
continue;
} else if (char === '{' || char === '[' || char === '}') { // Handle other bracket types if needed, or ignore
resultSpan.textContent = "Unsupported bracket";
return;
}
if (/[A-Z]/.test(char)) { // Start of an element symbol
// If we were building an element and found a new one, process the previous one
if (currentElement) {
var count = parseInt(currentCountStr || '1', 10);
if (inParenthesis) {
parenthesisElementCounts[currentElement] = (parenthesisElementCounts[currentElement] || 0) + count;
} else {
if (atomicMasses[currentElement]) {
totalMolarMass += atomicMasses[currentElement] * count;
} else {
resultSpan.textContent = "Unknown element: " + currentElement;
return;
}
}
}
// Start building the new element symbol
currentElement = char;
currentCountStr = '';
// Check for a second lowercase letter in the symbol
if (i + 1 0) {
resultSpan.textContent = totalMolarMass.toFixed(3); // Display with 3 decimal places
} else if (formula.length > 0) {
resultSpan.textContent = "Calculation Error";
} else {
resultSpan.textContent = "N/A";
}
}