الدليل الشامل لتحويل الوحدات: الصيغ والكود والأدوات لكل قياس
وصفة تطلب 350°F وأنت لا تعرف إلا السيلزيوس. ملصق شحن يقرأ 22 رطلًا ونظامك يتوقع كيلوغرامات. عميل يرسل أبعادًا بالأقدام وبرنامج CAD الخاص بك يستخدم الأمتار. تحويل الوحدات من تلك المهام التي تبدو تافهة حتى تخطئ فيها — والعواقب تتراوح من عشاء خرب إلى تحطم مركبة فضائية بقيمة 327 مليون دولار.
يغطي هذا الدليل أنواع القياسات الأربعة التي ستحوّلها في أغلب الأحيان — الطول والوزن والحرارة والحجم — مع صيغ دقيقة، وكود JavaScript وPython يمكنك نسخه إلى مشاريعك، وجداول مرجعية سريعة للحساب الذهني.
لماذا لا يزال تحويل الوحدات يُربك المطورين
قد تظن أن أخطاء الوحدات مشكلة محلولة. ليست كذلك.
في عام 1999، تفكّكت مركبة Mars Climate Orbiter التابعة لناسا في الغلاف الجوي للمريخ لأن فريقًا هندسيًا استخدم وحدة رطل-قوة بالثانية بينما استخدم آخر نيوتن بالثانية. لم يكتشف أحد التناقض خلال أشهر من حسابات المسار. الخسارة: 327.6 مليون دولار.
في عام 1983، نفد الوقود من رحلة Air Canada Flight 143 (المعروفة بـ “طائرة غيملي الشراعية”) في منتصف الرحلة لأن طاقم الأرض حسب الوقود بالأرطال بدلًا من الكيلوغرامات. كانت الطائرة تحمل أقل من نصف الوقود المطلوب.
هذه حالات متطرفة، لكن أخطاء الوحدات الأصغر تحدث باستمرار:
- الغالون الأمريكي ≠ الغالون الإمبراطوري. يختلفان بحوالي 20%. مقارنة اقتصاد الوقود بين أرقام أمريكية وبريطانية بلا معنى دون معرفة أي غالون.
- الأونصة التروية ≠ الأونصة العادية. الذهب المسعّر بـ “1,900 دولار للأونصة” يستخدم الأونصة التروية (31.1 غ)، وليس أونصة الموازين (28.35 غ) على ميزان مطبخك.
- تحويل الحرارة ليس خطيًا. لا يمكنك مجرد الضرب — هناك إزاحة، ونسيانها يعطي نتائج خاطئة تمامًا.
المتري مقابل الإمبراطوري: نظامان، كوكب واحد
قبل الغوص في الصيغ، إليك الصورة الكبيرة.
| البعد | المتري (SI) | الإمبراطوري / العرفي الأمريكي |
|---|---|---|
| مبدأ التصميم | عشري — كل وحدة تتدرج بقوى 10 | غير متسق — 12 بوصة/قدم، 3 أقدام/ياردة، 5,280 قدم/ميل |
| الطول | متر (m) | قدم (ft)، بوصة (in)، ميل (mi) |
| الكتلة / الوزن | كيلوغرام (kg) | رطل (lb)، أونصة (oz) |
| الحرارة | سيلزيوس (°C)، كلفن (K) | فهرنهايت (°F) |
| الحجم | لتر (L) | غالون (gal)، باينت (pt)، كوب |
| يُستخدم من قبل | ~95% من العالم | الولايات المتحدة، ميانمار، ليبيريا |
يُدار النظام المتري من قبل المكتب الدولي للأوزان والمقاييس (BIPM). منذ عام 2019، تُعرّف جميع وحدات SI الأساسية السبع بثوابت فيزيائية ثابتة — سرعة الضوء، ثابت بلانك، ثابت بولتزمان، وغيرها. هذا يعني أن المتر هو نفسه في كل مكان في الكون، بحكم التعريف.
النظام الإمبراطوري ينقسم فعليًا إلى متغيرين: العرفي الأمريكي (المستخدم في أمريكا) والإمبراطوري (المستخدم تاريخيًا في بريطانيا). يتشاركان أسماء وحدات كثيرة لكن يعرّفان بعضها بشكل مختلف — الغالونات والأونصات السائلة، مثلًا، ليست بنفس الحجم.
تحويل الطول: الصيغ والكود
الطول هو نوع القياس الأكثر تحويلًا. استخدم محوّل الطول لنتائج فورية، أو استخدم الصيغ أدناه في كودك الخاص.
عوامل تحويل الطول الرئيسية
جميع هذه القيم دقيقة، محددة باتفاقية الياردة والرطل الدولية لعام 1959:
| التحويل | العامل | الاتجاه |
|---|---|---|
| بوصات → سنتيمترات | × 2.54 | دقيق |
| أقدام → أمتار | × 0.3048 | دقيق |
| ياردات → أمتار | × 0.9144 | دقيق |
| أميال → كيلومترات | × 1.609344 | دقيق |
| أميال بحرية → أمتار | × 1,852 | دقيق |
البادئات المترية تجعل الباقي سهلًا: 1 كم = 1,000 م، 1 سم = 0.01 م، 1 مم = 0.001 م. التنقل بين الوحدات المترية مجرد تحريك لنقطة عشرية.
تحويل الطول في الكود
JavaScript:
const lengthConvert = {
inToCm: (inches) => inches * 2.54,
cmToIn: (cm) => cm / 2.54,
ftToM: (feet) => feet * 0.3048,
mToFt: (m) => m / 0.3048,
miToKm: (miles) => miles * 1.609344,
kmToMi: (km) => km / 1.609344,
};
console.log(lengthConvert.inToCm(27)); // 68.58 (27" monitor)
console.log(lengthConvert.miToKm(26.2)); // 42.164928 (marathon)
console.log(lengthConvert.mToFt(1.83)); // 6.003937... (6 ft person)
Python:
def inches_to_cm(inches: float) -> float:
return inches * 2.54
def feet_to_meters(feet: float) -> float:
return feet * 0.3048
def miles_to_km(miles: float) -> float:
return miles * 1.609344
print(inches_to_cm(27)) # 68.58
print(miles_to_km(26.2)) # 42.164928
حيل الحساب الذهني للطول
- بوصات إلى سم: اضرب في 2.5. ستخطئ بنسبة 1.6%، قريب بما يكفي للاستخدام اليومي.
- أميال إلى كم: استخدم متتالية فيبوناتشي. الأعداد المتتالية في فيبوناتشي تقرّب نسبة التحويل: 5 ميل ≈ 8 كم، 8 ميل ≈ 13 كم، 13 ميل ≈ 21 كم.
- أقدام إلى أمتار: اقسم على 3.3. شخص بطول 6 أقدام حوالي 1.82 م.
مرجع سريع: الطول
| إمبراطوري | متري |
|---|---|
| 1 بوصة | 2.54 سم |
| 1 قدم | 30.48 سم |
| 6 أقدام | 1.8288 م |
| 1 ياردة | 0.9144 م |
| 1 ميل | 1.609 كم |
| 1 ميل بحري | 1.852 كم |
تحويل الوزن والكتلة: الصيغ والكود
تقنيًا، “الوزن” هو قوة الجاذبية على جسم بينما “الكتلة” هي كمية المادة. في الاستخدام اليومي وفي هذا الدليل، نعاملهما بالتبادل. حوّل القيم فوريًا مع محوّل الوزن.
عوامل تحويل الوزن الرئيسية
| التحويل | العامل |
|---|---|
| كيلوغرامات → أرطال | × 2.20462 |
| أرطال → كيلوغرامات | × 0.453592 |
| أونصات (موازين) → غرامات | × 28.3495 |
| أونصات تروية → غرامات | × 31.1035 |
| ستون → كيلوغرامات | × 6.35029 |
| ستون → أرطال | × 14 (دقيق) |
فخ الأونصة التروية
إذا كنت تعمل مع المعادن الثمينة أو الأحجار الكريمة أو البيانات المالية، احذر: الأونصة التروية (31.1035 غ) أثقل بحوالي 10% من أونصة الموازين القياسية (28.3495 غ). يُسعّر الذهب والفضة والبلاتين دائمًا بالأونصة التروية. الخلط بينهما في تطبيق مالي يعني أن حساباتك ستكون خاطئة بنسبة 10% — خطأ مكلف.
تحويل الوزن في الكود
JavaScript:
const weightConvert = {
kgToLbs: (kg) => kg * 2.20462,
lbsToKg: (lbs) => lbs * 0.453592,
ozToGrams: (oz) => oz * 28.3495,
gramsToOz: (g) => g / 28.3495,
stoneToKg: (st) => st * 6.35029,
};
console.log(weightConvert.kgToLbs(70)); // 154.3234 (avg adult)
console.log(weightConvert.ozToGrams(8)); // 226.796 (half pound)
console.log(weightConvert.stoneToKg(11)); // 69.85319
Python:
def kg_to_lbs(kg: float) -> float:
return kg * 2.20462
def lbs_to_kg(lbs: float) -> float:
return lbs * 0.453592
def oz_to_grams(oz: float) -> float:
return oz * 28.3495
print(kg_to_lbs(70)) # 154.3234
print(oz_to_grams(8)) # 226.796
حيلة الحساب الذهني للوزن
كيلوغرام إلى أرطال: ضاعف القيمة، ثم أضف 10%. مثلًا، 70 كغ → 140 + 14 = 154 رطل. الجواب الدقيق هو 154.32 — قريب بما يكفي.
مرجع سريع: الوزن
| إمبراطوري | متري |
|---|---|
| 1 أونصة | 28.35 غ |
| 1 رطل | 453.6 غ |
| 1 ستون (14 رطلًا) | 6.35 كغ |
| 1 طن قصير (2,000 رطل) | 907.2 كغ |
| 1 أونصة تروية | 31.10 غ |
تحويل الحرارة: التحويل المختلف
تحويلات الطول والوزن والحجم جميعها تستخدم ضربًا بسيطًا. الحرارة لا. مقاييس الحرارة لها نقاط صفر مختلفة، لذا يتطلب التحويل ضربًا وجمعًا معًا. جرّبه بنفسك مع محوّل الحرارة.
شرح صيغ الحرارة
مقاييس الحرارة الأربعة وعلاقاتها:
سيلزيوس ↔ فهرنهايت:
°F = °C × 9/5 + 32
°C = (°F − 32) × 5/9
من أين تأتي 9/5؟ يتجمد الماء عند 0°C (32°F) ويغلي عند 100°C (212°F). نطاق فهرنهايت هو 212 − 32 = 180 درجة. نطاق سيلزيوس هو 100 درجة. 180/100 = 9/5.
سيلزيوس ↔ كلفن:
K = °C + 273.15
°C = K − 273.15
يستخدم كلفن نفس حجم الدرجة كسيلزيوس لكنه يبدأ من الصفر المطلق (−273.15°C). لا توجد قيم كلفن سالبة.
فهرنهايت ↔ رانكين:
°R = °F + 459.67
رانكين بالنسبة لفهرنهايت كما كلفن بالنسبة لسيلزيوس — نفس حجم الدرجة، لكن يبدأ من الصفر المطلق. يُستخدم أساسًا في الديناميكا الحرارية الهندسية الأمريكية.
حقيقة ممتعة: −40° هي نقطة تقاطع سيلزيوس وفهرنهايت. −40°C = −40°F بالضبط.
تحويل الحرارة في الكود
JavaScript:
const tempConvert = {
cToF: (c) => c * 9 / 5 + 32,
fToC: (f) => (f - 32) * 5 / 9,
cToK: (c) => c + 273.15,
kToC: (k) => k - 273.15,
fToK: (f) => (f - 32) * 5 / 9 + 273.15,
kToF: (k) => (k - 273.15) * 9 / 5 + 32,
};
console.log(tempConvert.cToF(100)); // 212 (boiling water)
console.log(tempConvert.fToC(98.6)); // 37 (body temperature)
console.log(tempConvert.cToK(0)); // 273.15 (freezing point)
Python:
def c_to_f(c: float) -> float:
return c * 9 / 5 + 32
def f_to_c(f: float) -> float:
return (f - 32) * 5 / 9
def c_to_k(c: float) -> float:
return c + 273.15
print(c_to_f(100)) # 212.0
print(f_to_c(98.6)) # 37.0
print(c_to_k(-273.15)) # 0.0 (absolute zero)
حيلة الحساب الذهني للحرارة
لتقدير تقريبي من سيلزيوس إلى فهرنهايت: ضاعف وأضف 30. هذا يعمل جيدًا في نطاق 0–30°C:
- 20°C → 40 + 30 = 70°F (الدقيق: 68°F)
- 30°C → 60 + 30 = 90°F (الدقيق: 86°F)
يزداد الخطأ في الحرارات المتطرفة، لكن للطقس والطبخ يوصلك قريبًا بما يكفي.
مقاييس حرارية مرجعية
| الحدث | °C | °F | K |
|---|---|---|---|
| الصفر المطلق | −273.15 | −459.67 | 0 |
| تجمد الماء | 0 | 32 | 273.15 |
| حرارة الغرفة | 20–22 | 68–72 | 293–295 |
| جسم الإنسان | 37 | 98.6 | 310.15 |
| غليان الماء | 100 | 212 | 373.15 |
| فرن (متوسط) | 180 | 356 | 453.15 |
تحويل الحجم والسوائل: الصيغ والكود
لتحويل الحجم مشكلة فريدة: الغالون الأمريكي والغالون الإمبراطوري ليسا بنفس الحجم. حوّل بين 15 وحدة حجم مع محوّل الحجم.
عوامل تحويل الحجم الرئيسية
| التحويل | العامل |
|---|---|
| لترات → غالونات أمريكية | ÷ 3.78541 |
| لترات → غالونات إمبراطورية | ÷ 4.54609 |
| أكواب أمريكية → ملليلترات | × 236.588 |
| أونصات سائلة أمريكية → ملليلترات | × 29.5735 |
| ملاعق كبيرة أمريكية → ملليلترات | × 14.787 |
| ملاعق صغيرة أمريكية → ملليلترات | × 4.929 |
فخ الغالون الأمريكي مقابل الإمبراطوري
هذا يخدع الناس أكثر مما تتوقع:
| الوحدة | العرفي الأمريكي | الإمبراطوري (المملكة المتحدة) | الفرق |
|---|---|---|---|
| 1 غالون | 3.785 لتر | 4.546 لتر | 20.1% |
| 1 أونصة سائلة | 29.57 مل | 28.41 مل | 3.9% |
| 1 باينت | 473.2 مل | 568.3 مل | 20.1% |
الغالون الأمريكي ينحدر من غالون النبيذ الإنجليزي لعام 1707. أُعيد تعريف الغالون الإمبراطوري في عام 1824 كحجم 10 أرطال من الماء عند 62°F. النتيجة: الغالون الإمبراطوري أكبر بحوالي الخُمس.
هذا يهم في سيناريوهات حقيقية. إذا نقلت مراجعة سيارة بريطانية اقتصاد الوقود بالأميال للغالون، فهي غالونات إمبراطورية. المقارنة المباشرة مع أرقام mpg الأمريكية — بدون تحويل — تجعل السيارة البريطانية تبدو أكثر كفاءة بنسبة 20% مما هي عليه فعلًا بالقياس الأمريكي.
تحويل الحجم في الكود
JavaScript:
const volumeConvert = {
litersToUSGal: (l) => l / 3.78541,
usGalToLiters: (gal) => gal * 3.78541,
cupsToMl: (cups) => cups * 236.588,
mlToCups: (ml) => ml / 236.588,
flOzToMl: (floz) => floz * 29.5735,
mlToFlOz: (ml) => ml / 29.5735,
};
console.log(volumeConvert.litersToUSGal(3.78541)); // 1 (exact)
console.log(volumeConvert.cupsToMl(2)); // 473.176
console.log(volumeConvert.flOzToMl(12)); // 354.882
Python:
def liters_to_us_gal(liters: float) -> float:
return liters / 3.78541
def cups_to_ml(cups: float) -> float:
return cups * 236.588
def fl_oz_to_ml(fl_oz: float) -> float:
return fl_oz * 29.5735
print(liters_to_us_gal(3.78541)) # ~1.0
print(cups_to_ml(2)) # 473.176
بناء محوّل وحدات شامل في JavaScript
إذا كنت بحاجة إلى محوّل في مشروعك، إليك تطبيقًا مدمجًا. الحيلة: عرّف علاقة كل وحدة بوحدة أساسية، ثم حوّل عبر الوحدة الأساسية.
const units = {
// Length (base: meter)
m: { base: 'm', factor: 1 },
km: { base: 'm', factor: 1000 },
cm: { base: 'm', factor: 0.01 },
mm: { base: 'm', factor: 0.001 },
in: { base: 'm', factor: 0.0254 },
ft: { base: 'm', factor: 0.3048 },
yd: { base: 'm', factor: 0.9144 },
mi: { base: 'm', factor: 1609.344 },
// Weight (base: gram)
g: { base: 'g', factor: 1 },
kg: { base: 'g', factor: 1000 },
mg: { base: 'g', factor: 0.001 },
lb: { base: 'g', factor: 453.592 },
oz: { base: 'g', factor: 28.3495 },
// Volume (base: milliliter)
ml: { base: 'ml', factor: 1 },
l: { base: 'ml', factor: 1000 },
usgal: { base: 'ml', factor: 3785.41 },
uscup: { base: 'ml', factor: 236.588 },
floz: { base: 'ml', factor: 29.5735 },
};
function convert(value, fromUnit, toUnit) {
const from = units[fromUnit];
const to = units[toUnit];
if (!from || !to || from.base !== to.base) {
throw new Error(`Cannot convert ${fromUnit} to ${toUnit}`);
}
return value * from.factor / to.factor;
}
// Temperature needs special handling (offset-based)
function convertTemp(value, from, to) {
// Normalize to Celsius first
let c;
if (from === 'C') c = value;
else if (from === 'F') c = (value - 32) * 5 / 9;
else if (from === 'K') c = value - 273.15;
else throw new Error(`Unknown unit: ${from}`);
// Convert from Celsius to target
if (to === 'C') return c;
if (to === 'F') return c * 9 / 5 + 32;
if (to === 'K') return c + 273.15;
throw new Error(`Unknown unit: ${to}`);
}
console.log(convert(26.2, 'mi', 'km')); // 42.164928
console.log(convert(70, 'kg', 'lb')); // 154.324...
console.log(convert(2, 'uscup', 'ml')); // 473.176
console.log(convertTemp(100, 'C', 'F')); // 212
تتعامل دالة convert مع أي وحدة علاقتها بالوحدة الأساسية نسبة بسيطة. الحرارة لها دالتها الخاصة بسبب الإزاحة. يمكنك توسيع units بأي وحدة جديدة — فقط حدد نوعها الأساسي وعامل التحويل.
الأسئلة الشائعة
كم سنتيمترًا في البوصة؟
بالضبط 2.54 سم. هذا ليس تقريبًا — إنه عامل التحويل الدقيق المحدد باتفاقية الياردة والرطل الدولية لعام 1959. لتحويل البوصات إلى سنتيمترات، اضرب في 2.54. للاتجاه العكسي، اقسم على 2.54. حوّل الأطوال فوريًا مع أداتنا المجانية.
ما صيغة تحويل سيلزيوس إلى فهرنهايت؟
°F = °C × 9/5 + 32. مثلًا، 20°C = 20 × 1.8 + 32 = 68°F. تأتي نسبة 9/5 من نطاق فهرنهايت البالغ 180 درجة (32°F إلى 212°F) مقسومًا على نطاق سيلزيوس البالغ 100 درجة (0°C إلى 100°C). تحقق من النتيجة الدقيقة مع أداة الحرارة لدينا.
لماذا يختلف الغالون الأمريكي عن الإمبراطوري؟
ينحدر الغالون الأمريكي (3.785 لتر) من غالون النبيذ الإنجليزي لعام 1707، بينما أُعيد تعريف الغالون الإمبراطوري (4.546 لتر) في عام 1824 بناءً على حجم 10 أرطال من الماء المقطر. هذا الفرق البالغ حوالي 20% مهم لمقارنات اقتصاد الوقود وتوسيع الوصفات والشحن الدولي.
كم رطلًا في الكيلوغرام؟
1 كغ = 2.20462 رطل. للحساب الذهني: ضاعف قيمة الكيلوغرام وأضف 10%. إذًا 70 كغ → 140 + 14 = 154 رطل. الجواب الدقيق هو 154.32 رطل.
ما هو الصفر المطلق؟
0 K = −273.15°C = −459.67°F. هو أدنى حرارة نظرية، حيث تتوقف كل حركة جزيئية حرارية. لم يحقق أي مختبر الصفر المطلق بالضبط، رغم أن التجارب اقتربت منه بأجزاء من المليار من الدرجة.
هل الأونصة التروية نفس الأونصة العادية؟
لا. الأونصة التروية (31.1035 غ) أثقل بحوالي 10% من أونصة الموازين القياسية (28.3495 غ). تُستخدم الأونصات التروية حصريًا للمعادن الثمينة — الذهب والفضة والبلاتين. إذا رأيت سعر ذهب مُسعّرًا “للأونصة”، فهذا يعني دائمًا الأونصة التروية.
ما أسهل طريقة لتحويل الأميال إلى كيلومترات ذهنيًا؟
استخدم متتالية فيبوناتشي. الأعداد المتتالية في فيبوناتشي تقرّب النسبة 1:1.609 بين الأميال والكيلومترات: 5 ميل ≈ 8 كم، 8 ميل ≈ 13 كم، 13 ميل ≈ 21 كم. للقيم العشوائية، فقط اضرب الأميال في 1.6.
خلاصة
أربعة أشياء تذكّرها:
- المتري عشري. التنقل بين الوحدات المترية يعني تحريك نقطة عشرية. لا حاجة للحفظ.
- الإمبراطوري يتطلب بحثًا. 12 بوصة في القدم، 3 أقدام في الياردة، 5,280 قدمًا في الميل — لا يوجد نمط.
- الحرارة لها إزاحة. بخلاف التحويلات الأخرى، لا يمكنك مجرد الضرب. طبّق الصيغة دائمًا: °F = °C × 9/5 + 32.
- الأمريكي ≠ الإمبراطوري للسوائل. الغالون الأمريكي والغالون الإمبراطوري يختلفان بنسبة 20%. تحقق دائمًا أيهما تستخدم.
تحتاج إلى تحويل شيء الآن؟ استخدم أدواتنا المجانية في المتصفح — بدون تسجيل، ولا تغادر البيانات جهازك:
- محوّل الطول — 16 وحدة، من المتري إلى الإمبراطوري والعكس
- محوّل الوزن — كيلوغرام، أرطال، أونصات، ستون، أونصات تروية
- محوّل الحرارة — سيلزيوس، فهرنهايت، كلفن، رانكين
- محوّل الحجم — لترات، غالونات، أكواب، أونصات سائلة