Going from grams to moles for zinc sulfate heptahydrate means dividing by its molar mass, 287.541 g/mol. One gram is 0.00347776 mol, or 3.47776 mmol; 100 mg is 0.34778 mmol; and a 287.541 g portion is exactly one mole. The division is the whole calculation, but the molar mass has to be the one for the exact formula you have, ZnSO4·7H2O, which is where these figures come from.
The figure comes from the formula. Zinc sulfate heptahydrate is 65.38 (Zn) + 32.06 (S) + 11 × 15.999 (O) + 14 × 1.008 (H), which is 287.541 g/mol, taking standard atomic weights, and every page here computes that sum rather than quoting it. Oxygen makes up the largest share of the mass: 11 of the 27 atoms in a formula unit are oxygen, and they account for 175.989 g of the 287.541 g, or 61.2% by mass. The derivation table below breaks the whole molecule down element by element.
Balance resolution is the practical limit here. On a two-decimal balance the smallest step is 10 mg, which is 0.03478 mmol of zinc sulfate heptahydrate; on a three-decimal balance it is 1 mg, or 3.478 µmol. To hit a target within 1% you therefore need to weigh at least a gram on the first and at least 100 mg on the second, and below that a stock solution measured by pipette beats weighing.
The zinc source in fertiliser and in supplements, and an astringent. The monohydrate at 179.47 g per mole is also sold, so check which you have. At 287.541 g/mol it is heavier than 31 of the 34 salts covered here, and that ranking matters more than it looks: iron(II) sulfate heptahydrate has a molar mass of 278.006 g/mol, so a gram of it contains 3.43% more formula units than a gram of zinc sulfate heptahydrate. Weigh by mass and you are not weighing equal amounts of substance.
Watch which form you have. This page is the hydrate, ZnSO4·7H2O, at 287.541 g/mol; the anhydrous salt is ZnSO4 at 161.436 g/mol. The 126.105 g of water per mole is 43.86% of the weight, so weighing the hydrate as though it were anhydrous puts you 43.86% short on the compound itself. Suppliers sell both, and the label is the only way to tell them apart by eye.
The formula
m- The mass you weighed, in grams
287.541- The molar mass of zinc sulfate heptahydrate in g/mol, derived from its formula
n- The amount of substance in moles
How it works, step by step
- Enter the mass you weighed, in grams.
- It is divided by 287.541 g/mol, the molar mass of zinc sulfate heptahydrate.
- The result is the amount of substance in moles, with millimoles and micromoles beneath it.
- Check it against the table if you want the figure for a standard weighing rather than a typed mass.
Worked examples
0.25 g of zinc sulfate heptahydrate in moles
0.25 ÷ 287.541 = 0.000869441 mol, or 0.86944 mmol. If the balance was reading to 1 mg, the last digit of that mass is worth 3.478 µmol, so quoting the answer to more than four significant figures claims a precision the weighing did not have.
2 g of zinc sulfate heptahydrate in moles
2 ÷ 287.541 = 0.00695553 mol, or 6.9555 mmol. If the balance was reading to 1 mg, the last digit of that mass is worth 3.478 µmol, so quoting the answer to more than four significant figures claims a precision the weighing did not have.
25 g of zinc sulfate heptahydrate in moles
25 ÷ 287.541 = 0.0869441 mol, or 86.944 mmol. If the balance was reading to 1 mg, the last digit of that mass is worth 3.478 µmol, so quoting the answer to more than four significant figures claims a precision the weighing did not have.
How to read your score
Frequently asked questions
What is the molar mass of zinc sulfate heptahydrate (ZnSO4·7H2O)?
It is 287.541 g/mol. That is the sum of the standard atomic weights of every atom in the formula: 65.38 (Zn) + 32.06 (S) + 11 × 15.999 (O) + 14 × 1.008 (H). One mole of zinc sulfate heptahydrate therefore weighs 287.541 g, and a gram of it is 3.4778 mmol.
What percentage of zinc sulfate heptahydrate is oxygen?
61.2% by mass. Each formula unit contains 11 oxygen atoms contributing 175.989 g of the 287.541 g total, so 100 g of zinc sulfate heptahydrate contains 61.2 g of oxygen and a kilogram contains 612.05 g of it.
How do I convert grams of zinc sulfate heptahydrate to moles?
Divide the mass in grams by 287.541 g/mol. So 1 g is 0.00347776 mol, 10 g is 0.0347776 mol and 100 g is 0.347776 mol. Nothing else enters the calculation — no volume, no temperature, no concentration.
How many moles is 100 g of zinc sulfate heptahydrate?
0.347776 mol, which is 347.776 mmol. Read the other way, one mole of zinc sulfate heptahydrate is 287.541 g, so 100 g is 0.3478 of a mole.
What about milligrams and micromoles?
The same division, scaled. A milligram of zinc sulfate heptahydrate is 3.4778 µmol, 10 mg is 34.778 µmol and 100 mg is 0.34778 mmol. Working in µmol per mg avoids the string of leading zeros that mol per g produces at this scale.
Does purity change the number of moles?
Yes, in proportion. A 98% pure sample weighing 1 g contains 0.98 g of zinc sulfate heptahydrate, which is 0.00340821 mol rather than 0.00347776 mol. The calculator assumes the mass you enter is the compound itself, so divide by the assay figure first if you need the corrected amount.
Grams to moles reference for zinc sulfate heptahydrate
| Element | Atoms | Atomic weight | Contribution (g/mol) | By mass |
|---|---|---|---|---|
| Oxygen (O) | 11 | 15.999 | 175.989 | 61.2% |
| Zinc (Zn) | 1 | 65.38 | 65.38 | 22.74% |
| Sulfur (S) | 1 | 32.06 | 32.06 | 11.15% |
| Hydrogen (H) | 14 | 1.008 | 14.112 | 4.908% |
| Total — one mole of zinc sulfate heptahydrate | 287.541 | 100% |
Standard atomic weights, IUPAC 2021. The contribution column is atoms × atomic weight, and the total is the molar mass this page uses: 287.541 g/mol.
| On the balance | Moles | Millimoles | Micromoles |
|---|---|---|---|
| 1 mg | 0.000003 | 0.00347776 | 3.47776 |
| 5 mg | 0.000017 | 0.0173888 | 17.3888 |
| 10 mg | 0.000035 | 0.0347776 | 34.7776 |
| 25 mg | 0.000087 | 0.0869441 | 86.9441 |
| 50 mg | 0.000173888 | 0.173888 | 173.888 |
| 100 mg | 0.000347776 | 0.347776 | 347.776 |
| 250 mg | 0.000869441 | 0.869441 | 869.441 |
| 500 mg | 0.00173888 | 1.73888 | 1738.88 |
| 1 g | 0.00347776 | 3.47776 | 3477.76 |
| 2 g | 0.00695553 | 6.95553 | 6955.53 |
| 5 g | 0.0173888 | 17.3888 | 17,388.8 |
| 10 g | 0.0347776 | 34.7776 | 34,777.6 |
| 25 g | 0.0869441 | 86.9441 | 86,944.1 |
| 50 g | 0.173888 | 173.888 | 173,888 |
| 100 g | 0.347776 | 347.776 | 347,776 |
| 250 g | 0.869441 | 869.441 | 869,441 |
| 500 g | 1.73888 | 1738.88 | 1738882.455024 |
Every row is the mass divided by 287.541 g/mol. A balance reading to 1 mg resolves 3.478 µmol of this compound, which is the smallest step the middle columns can really move in.
| Compound | Formula | Molar mass (g/mol) | Millimoles in 1 g |
|---|---|---|---|
| Sodium thiosulfate pentahydrate | Na2S2O3·5H2O | 248.1715 | 4.0295 |
| Copper(II) sulfate pentahydrate | CuSO4·5H2O | 249.677 | 4.0052 |
| Sodium citrate | Na3C6H5O7 | 258.0683 | 3.8749 |
| Iron(II) sulfate heptahydrate | FeSO4·7H2O | 278.006 | 3.597 |
| Zinc sulfate heptahydrate (this page) | ZnSO4·7H2O | 287.541 | 3.4778 |
| Potassium dichromate | K2Cr2O7 | 294.1818 | 3.3993 |
| Aluminium sulfate | Al2(SO4)3 | 342.1311 | 2.9229 |
Ordered by molar mass. The last column is 1000/M, which is the number a weighed gram actually gives you.