Skip to content
Назад к блогу
Руководства

Конвертация единиц: длина, вес, температура и объём

Перевод между метрической и имперской системами с точными формулами, примерами кода и таблицами для длины, веса, температуры и объёма.

14 мин чтения

Полное руководство по конвертации единиц: формулы, код и инструменты для каждого измерения

Рецепт требует 350°F, а вы знаете только Цельсий. На транспортной этикетке 22 lbs, а ваша система ждёт килограммы. Клиент шлёт размеры в футах, а ваш CAD работает в метрах. Конвертация единиц — одна из тех задач, что выглядят тривиальными, пока не ошибётесь — и последствия от испорченного ужина до крушения межпланетного аппарата за 327 миллионов.

Это руководство покрывает четыре типа измерений, которые вы будете конвертировать чаще всего — длину, вес, температуру и объём — с точными формулами, кодом на JavaScript и Python, который можно скопировать в свои проекты, и быстрыми таблицами для устного счёта.

Почему конвертация единиц до сих пор спотыкает разработчиков

Вы можете подумать, что ошибки единиц — это решённая проблема. Это не так.

В 1999 году NASA Mars Climate Orbiter сгорел в марсианской атмосфере, потому что одна инженерная команда работала в pound-force-секундах, а другая — в ньютон-секундах. Никто не поймал расхождение за месяцы расчётов траектории. Потеря: 327,6 миллиона долларов.

В 1983 году Air Canada Flight 143 («Gimli Glider») остался без топлива в воздухе, потому что наземная служба считала топливо в фунтах вместо килограммов. У самолёта было меньше половины нужного топлива.

Это крайние случаи, но мелкие ошибки единиц происходят постоянно:

  • US-галлон ≠ имперский галлон. Разница около 20%. Сравнение расхода топлива между американскими и британскими цифрами бессмысленно без указания, какой именно галлон.
  • Тройская унция ≠ обычная унция. Золото, котирующееся «$1900 за унцию», использует тройские унции (31,1 g), а не avoirdupois-унцию (28,35 g) на ваших кухонных весах.
  • Конвертация температуры не линейна. Просто умножать нельзя — есть смещение, и его пропуск даёт сильно неверные результаты.

Метрика и имперская: две системы, одна планета

Прежде чем нырять в формулы, общая картина.

ИзмерениеМетрика (SI)Имперская / US Customary
Принцип построенияДесятичная — каждая единица отличается степенью десятиНесогласованная — 12 in/ft, 3 ft/yd, 5280 ft/mi
Длинаметр (m)foot (ft), inch (in), mile (mi)
Масса / вескилограмм (kg)pound (lb), ounce (oz)
ТемператураЦельсий (°C), Кельвин (K)Фаренгейт (°F)
Объёмлитр (L)gallon (gal), pint (pt), cup
Используется~95% мираСША, Мьянма, Либерия

Метрическую систему поддерживает Международное бюро мер и весов (BIPM). С 2019 года все семь базовых единиц SI определяются фиксированными физическими константами — скоростью света, постоянной Планка, постоянной Больцмана и другими. Это значит, что метр одинаков везде во вселенной по определению.

Имперская система фактически разделяется на два варианта: US customary (используется в Америке) и Imperial (исторически использовался в Великобритании). У них общие имена для многих единиц, но некоторые определения различаются — галлоны и fluid ounce, например, не одинакового размера.

Конвертация длины: формулы и код

Длина — самое часто конвертируемое измерение. Используйте наш конвертер длины для мгновенных результатов или формулы ниже в своём коде. Если задача узкая — например, перевод роста, размеров экрана или бумаги между сантиметрами и дюймами — у нас есть отдельный практический разбор: см в дюймы — точная формула, таблицы для роста и экранов.

Ключевые коэффициенты длины

Все они точные значения, установленные Международным соглашением о ярде и фунте 1959 года:

КонверсияКоэффициентНаправление
inches → centimeters× 2,54точно
feet → meters× 0,3048точно
yards → meters× 0,9144точно
miles → kilometers× 1,609344точно
nautical miles → meters× 1852точно

Метрические приставки делают остальное лёгким: 1 km = 1000 m, 1 cm = 0,01 m, 1 mm = 0,001 m. Перемещение между метрическими единицами — просто сдвиг запятой.

Конвертация длины в коде

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

Устный счёт для длины

  • Дюймы в cm: умножайте на 2,5. Будете промахиваться на 1,6%, для бытового хватает.
  • Мили в km: используйте последовательность Фибоначчи. Соседние числа Фибоначчи приближают коэффициент: 5 mi ≈ 8 km, 8 mi ≈ 13 km, 13 mi ≈ 21 km.
  • Футы в метры: делите на 3,3. Человек 6 футов — это около 1,82 m.

Краткий справочник: длина

ИмперскаяМетрика
1 inch2,54 cm
1 foot30,48 cm
6 feet1,8288 m
1 yard0,9144 m
1 mile1,609 km
1 nautical mile1,852 km

Конвертация веса и массы: формулы и код

Технически «вес» — это сила тяжести на объект, а «масса» — количество вещества. В быту и в этом руководстве мы трактуем их взаимозаменяемо. Конвертируйте мгновенно с нашим конвертером веса.

Ключевые коэффициенты веса

КонверсияКоэффициент
kilograms → pounds× 2,20462
pounds → kilograms× 0,453592
ounces (avoirdupois) → grams× 28,3495
troy ounces → grams× 31,1035
stone → kilograms× 6,35029
stone → pounds× 14 (точно)

Ловушка тройской унции

Если работаете с драгметаллами, драгоценными камнями или финансовыми данными, осторожно: тройская унция (31,1035 g) примерно на 10% тяжелее стандартной унции avoirdupois (28,3495 g). Золото, серебро и платина всегда котируются за тройскую унцию. Перепутаете в финансовом приложении — расчёты сдвинутся на 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

Устный приём для веса

kg в lbs: удвойте значение и прибавьте 10%. Пример: 70 kg → 140 + 14 = 154 lbs. Точное значение 154,32 — близко достаточно.

Краткий справочник: вес

ИмперскаяМетрика
1 ounce28,35 g
1 pound453,6 g
1 stone (14 lbs)6,35 kg
1 short ton (2000 lbs)907,2 kg
1 troy ounce31,10 g

Конвертация температуры: та, что отличается

Длина, вес и объём конвертируются простым умножением. Температура — нет. У температурных шкал разные нули, поэтому конвертация требует и умножения, и сложения. Попробуйте сами с нашим конвертером температуры.

Формулы температуры

Четыре температурные шкалы и их связи:

Цельсий ↔ Фаренгейт:

°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 точно.

Глубокое погружение: Формулы конвертации температуры, код на 5 языках и ловушки weather API — там это разобрано подробно.

Конвертация температуры в коде

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°FK
Абсолютный ноль−273,15−459,670
Замерзание воды032273,15
Комнатная температура20–2268–72293–295
Тело человека3798,6310,15
Кипение воды100212373,15
Духовка (умеренная)180356453,15

Конвертация объёма и жидкости: формулы и код

У объёма уникальная ловушка: US-галлон и имперский галлон не одного размера. Конвертируйте между 15 единицами объёма с нашим конвертером объёма.

Ключевые коэффициенты объёма

КонверсияКоэффициент
liters → US gallons/ 3,78541
liters → Imperial gallons/ 4,54609
US cups → milliliters× 236,588
US fluid ounces → milliliters× 29,5735
US tablespoons → milliliters× 14,787
US teaspoons → milliliters× 4,929

Ловушка US vs Imperial галлона

Это спотыкает чаще, чем ожидаете:

ЕдиницаUS CustomaryImperial (UK)Разница
1 gallon3,785 L4,546 L20,1%
1 fluid ounce29,57 mL28,41 mL3,9%
1 pint473,2 mL568,3 mL20,1%

US-галлон происходит от английского винного галлона 1707 года. Имперский галлон был переопределён в 1824 году как объём 10 фунтов воды при 62°F. Результат: имперский галлон примерно на пятую часть больше.

Это важно в реальных сценариях. Если британский авторевью котирует расход топлива в милях на галлон, это имперские галлоны. Прямое сравнение с US-mpg без конверсии — и британский автомобиль выглядит на 20% эффективнее, чем относительно US-меры.

Конвертация объёма в коде

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 любой новой единицей — просто укажите её базовый тип и коэффициент.

FAQ

Сколько сантиметров в дюйме?

Ровно 2,54 cm. Это не приближение — точный коэффициент по Международному соглашению о ярде и фунте 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). Проверьте точный результат в нашем температурном инструменте.

Почему US и имперский галлон различаются?

US-галлон (3,785 L) происходит от английского винного галлона 1707 года, а имперский галлон (4,546 L) переопределён в 1824 году по объёму 10 фунтов дистиллированной воды. Эта разница примерно в 20% важна для сравнений расхода топлива, масштабирования рецептов и международной отгрузки.

Сколько фунтов в килограмме?

1 kg = 2,20462 lbs. Для устного счёта: удвойте значение в kg и добавьте 10%. То есть 70 kg → 140 + 14 = 154 lbs. Точный ответ — 154,32 lbs.

Что такое абсолютный ноль?

0 K = −273,15°C = −459,67°F. Это теоретическая нижняя температура, при которой всё тепловое движение молекул прекращается. Ни одна лаборатория не достигла ровно 0 K, хотя эксперименты подходили в пределах миллиардных доли градуса.

Тройская унция — то же, что обычная унция?

Нет. Тройская унция (31,1035 g) примерно на 10% тяжелее стандартной avoirdupois-унции (28,3495 g). Тройские унции применяются исключительно для драгметаллов — золота, серебра, платины. Если видите цену золота «за унцию», всегда имеется в виду тройская.

Какой самый простой способ перевести мили в километры в уме?

Используйте последовательность Фибоначчи. Соседние числа Фибоначчи приближают отношение 1:1,609 между милями и километрами: 5 mi ≈ 8 km, 8 mi ≈ 13 km, 13 mi ≈ 21 km. Для произвольных значений — просто умножайте мили на 1,6.

Заключение

Четыре вещи на память:

  1. Метрика десятична. Перемещение между метрическими единицами — сдвиг запятой. Запоминать ничего.
  2. Имперская требует памяти. 12 дюймов в футе, 3 фута в ярде, 5280 футов в миле — закономерности нет.
  3. У температуры есть смещение. В отличие от других конвертаций, простым умножением не обойтись. Применяйте формулу: °F = °C × 9/5 + 32.
  4. US ≠ Imperial для жидкостей. US-галлон и имперский галлон различаются на 20%. Всегда уточняйте, с каким именно работаете.

Нужно перевести что-то прямо сейчас? Используйте наши бесплатные браузерные инструменты — ни регистрации, ни данных за пределами вашего устройства:

Похожие статьи

Все статьи