Blood Sugar Converter
Convert blood glucose between mg/dL and mmol/L with normal range reference.
Reference ranges
| 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.
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.