Blood Sugar Converter
Convert blood glucose between mg/dL and mmol/L with normal range reference.
| Status | mg/dL | mmol/L | ||
|---|---|---|---|---|
| Fasting | 2h post-meal | Fasting | 2h post-meal | |
| Normal | 70β99 | < 140 | 3.9β5.5 | < 7.8 |
| Pre-diabetes | 100β125 | 140β199 | 5.6β6.9 | 7.8β11.0 |
| Diabetes | β₯ 126 | β₯ 200 | β₯ 7.0 | β₯ 11.1 |
For reference only. Consult a healthcare professional for medical advice.
Blood sugar levels are measured in two different units depending on your country: mg/dL (milligrams per deciliter), used in the United States and several other countries, and mmol/L (millimoles per liter), used in Europe, Canada, Australia, and most of the world. Converting between these units is essential when reading international medical literature, using a glucometer from another country, or discussing results with healthcare providers abroad.
To convert mg/dL to mmol/L, divide by 18.018. To convert mmol/L to mg/dL, multiply by 18.018. For example, a fasting blood glucose of 100 mg/dL equals approximately 5.6 mmol/L. This tool performs the conversion instantly in both directions and displays a reference table of clinically significant thresholds.
Normal fasting blood glucose is typically below 100 mg/dL (5.6 mmol/L). Prediabetes is indicated between 100β125 mg/dL (5.6β6.9 mmol/L), and a diagnosis of diabetes is generally made at 126 mg/dL (7.0 mmol/L) or higher on two separate occasions.
Frequently Asked Questions
Code Implementation
# Blood glucose unit conversion
# Molecular weight of glucose = 180.182 g/mol
# Factor = 18.0182
FACTOR = 18.0182
def mgdl_to_mmoll(mgdl: float) -> float:
"""Convert blood glucose from mg/dL to mmol/L."""
return mgdl / FACTOR
def mmoll_to_mgdl(mmoll: float) -> float:
"""Convert blood glucose from mmol/L to mg/dL."""
return mmoll * FACTOR
def classify_fasting(mgdl: float) -> str:
"""Classify fasting blood glucose level (ADA guidelines)."""
if mgdl < 70:
return "Low (Hypoglycaemia)"
elif mgdl < 100:
return "Normal"
elif mgdl < 126:
return "Pre-diabetes"
else:
return "Diabetes range"
# Example conversions
values_mgdl = [54, 70, 90, 100, 126, 180, 250]
print(f"{'mg/dL':>8} {'mmol/L':>8} {'Category'}")
print("-" * 40)
for v in values_mgdl:
mmol = mgdl_to_mmoll(v)
category = classify_fasting(v)
print(f"{v:>8} {mmol:>8.1f} {category}")
# Reverse conversion
print("\nmmol/L β mg/dL:")
for v in [3.9, 5.5, 7.0, 10.0]:
mgdl = mmoll_to_mgdl(v)
print(f"{v} mmol/L = {mgdl:.1f} mg/dL")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.