Kompletny przewodnik po przeliczaniu jednostek: wzory, kod i narzędzia dla każdej miary
Przepis wymaga 350 °F, a Ty znasz tylko stopnie Celsjusza. Etykieta wysyłkowa podaje 22 lbs, a system docelowy oczekuje kilogramów. Klient przesyła wymiary w stopach, a oprogramowanie CAD używa metrów. Przeliczanie jednostek to jedno z tych zadań, które brzmi trywialnie, dopóki się go nie pomyli — a konsekwencje sięgają od zepsutej kolacji aż po katastrofę sondy kosmicznej za 327 milionów dolarów.
Ten przewodnik obejmuje cztery typy miar, które przelicza się najczęściej — długość, wagę, temperaturę i objętość — z dokładnymi wzorami, kodem w JavaScript i Pythonie, który można skopiować do własnych projektów, oraz tabelami referencyjnymi do liczenia w pamięci.
Dlaczego przeliczanie jednostek wciąż sprawia problemy programistom
Można sądzić, że błędy jednostek to problem już rozwiązany. Tak nie jest.
W 1999 roku Mars Climate Orbiter NASA rozpadł się w atmosferze Marsa, ponieważ jeden zespół inżynierski używał funto-sił × sekund, a drugi niuto-sekund. Nikt nie wychwycił tej rozbieżności podczas miesięcy obliczeń trajektorii. Strata: 327,6 miliona dolarów.
W 1983 roku lot Air Canada 143 (znany jako „Gimli Glider”) skończyło paliwo w trakcie lotu, ponieważ obsługa naziemna obliczyła paliwo w funtach zamiast w kilogramach. Samolot miał mniej niż połowę paliwa, którego potrzebował.
To przypadki ekstremalne, ale mniejsze błędy jednostek zdarzają się stale:
- Galon amerykański ≠ galon imperialny. Różnią się o około 20%. Porównanie zużycia paliwa między danymi amerykańskimi a brytyjskimi nie ma sensu bez wiedzy, o który galon chodzi.
- Uncja trojańska ≠ zwykła uncja. Złoto wycenione na „1900 dolarów za uncję” odnosi się do uncji trojańskich (31,1 g), a nie uncji avoirdupois (28,35 g) z kuchennej wagi.
- Przeliczanie temperatury nie jest liniowe. Nie wystarczy mnożyć — występuje przesunięcie, a jego pominięcie daje skrajnie błędne wyniki.
Metryczny vs imperialny: dwa systemy, jedna planeta
Zanim przejdziemy do wzorów, oto ogólny obraz.
| Wymiar | Metryczny (SI) | Imperialny / US Customary |
|---|---|---|
| Zasada projektowa | Dziesiętny — każda jednostka skaluje się przez potęgi 10 | Niekonsekwentny — 12 in/ft, 3 ft/yd, 5 280 ft/mi |
| Długość | metr (m) | stopa (ft), cal (in), mila (mi) |
| Masa / Waga | kilogram (kg) | funt (lb), uncja (oz) |
| Temperatura | Celsjusz (°C), Kelwin (K) | Fahrenheit (°F) |
| Objętość | litr (L) | galon (gal), pinta (pt), cup |
| Używany przez | ~95% świata | Stany Zjednoczone, Mjanma, Liberia |
System metryczny utrzymuje Międzynarodowe Biuro Miar i Wag (BIPM). Od 2019 roku wszystkie siedem podstawowych jednostek SI jest zdefiniowanych przez stałe fizyczne — prędkość światła, stałą Plancka, stałą Boltzmanna i inne. Oznacza to, że metr jest taki sam wszędzie we wszechświecie, z definicji.
System imperialny dzieli się w istocie na dwa warianty: US customary (używany w Ameryce) i Imperial (historycznie używany w Wielkiej Brytanii). Dzielą nazwy wielu jednostek, ale niektóre definiują inaczej — galony i uncje płynne nie mają na przykład tego samego rozmiaru.
Przeliczanie długości: wzory i kod
Długość to najczęściej przeliczany typ miary. Można skorzystać z naszego przelicznika długości dla natychmiastowych wyników lub użyć poniższych wzorów we własnym kodzie.
Kluczowe współczynniki przeliczania długości
Wszystkie poniższe wartości są dokładne, ustanowione przez międzynarodowe porozumienie o jardzie i funcie z 1959 roku:
| Przeliczenie | Współczynnik | Kierunek |
|---|---|---|
| cale → centymetry | × 2,54 | dokładnie |
| stopy → metry | × 0,3048 | dokładnie |
| jardy → metry | × 0,9144 | dokładnie |
| mile → kilometry | × 1,609344 | dokładnie |
| mile morskie → metry | × 1 852 | dokładnie |
Przedrostki metryczne ułatwiają resztę: 1 km = 1 000 m, 1 cm = 0,01 m, 1 mm = 0,001 m. Przechodzenie między jednostkami metrycznymi to po prostu przesuwanie przecinka dziesiętnego.
Przeliczanie długości w kodzie
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
Sztuczki pamięciowe dla długości
- Cale na cm: pomnożyć przez 2,5. Pomyłka rzędu 1,6%, wystarczająco dokładnie do codziennego użytku.
- Mile na km: użyć ciągu Fibonacciego. Kolejne liczby Fibonacciego przybliżają stosunek przeliczenia: 5 mi ≈ 8 km, 8 mi ≈ 13 km, 13 mi ≈ 21 km.
- Stopy na metry: podzielić przez 3,3. Osoba o wzroście 6 stóp ma około 1,82 m.
Szybkie odniesienie: długość
| Imperialny | Metryczny |
|---|---|
| 1 cal | 2,54 cm |
| 1 stopa | 30,48 cm |
| 6 stóp | 1,8288 m |
| 1 jard | 0,9144 m |
| 1 mila | 1,609 km |
| 1 mila morska | 1,852 km |
Przeliczanie wagi i masy: wzory i kod
Technicznie „waga” to siła grawitacji działająca na obiekt, a „masa” to ilość materii. W codziennym użyciu i w tym przewodniku traktujemy je wymiennie. Wartości można przeliczać natychmiast za pomocą naszego przelicznika wagi.
Kluczowe współczynniki przeliczania wagi
| Przeliczenie | Współczynnik |
|---|---|
| kilogramy → funty | × 2,20462 |
| funty → kilogramy | × 0,453592 |
| uncje (avoirdupois) → gramy | × 28,3495 |
| uncje trojańskie → gramy | × 31,1035 |
| stone → kilogramy | × 6,35029 |
| stone → funty | × 14 (dokładnie) |
Pułapka uncji trojańskiej
Przy pracy z metalami szlachetnymi, kamieniami szlachetnymi lub danymi finansowymi należy uważać: uncja trojańska (31,1035 g) jest około 10% cięższa niż standardowa uncja avoirdupois (28,3495 g). Złoto, srebro i platyna są zawsze wyceniane za uncję trojańską. Pomylenie ich w aplikacji finansowej oznacza, że obliczenia będą zaniżone lub zawyżone o 10% — kosztowny błąd.
Przeliczanie wagi w kodzie
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
Sztuczka pamięciowa dla wagi
kg na lbs: podwoić wartość, a następnie dodać 10%. Na przykład 70 kg → 140 + 14 = 154 lbs. Dokładna odpowiedź to 154,32 — wystarczająco blisko.
Szybkie odniesienie: waga
| Imperialny | Metryczny |
|---|---|
| 1 uncja | 28,35 g |
| 1 funt | 453,6 g |
| 1 stone (14 lbs) | 6,35 kg |
| 1 tona krótka (2 000 lbs) | 907,2 kg |
| 1 uncja trojańska | 31,10 g |
Przeliczanie temperatury: ta inna od pozostałych
Przeliczenia długości, wagi i objętości używają prostego mnożenia. Temperatura nie. Skale temperatury mają różne punkty zerowe, więc przeliczenie wymaga zarówno mnożenia, jak i dodawania. Można to wypróbować w naszym konwerterze temperatury.
Wzory temperatury — wyjaśnienie
Cztery skale temperatury i ich relacje:
Celsjusz ↔ Fahrenheit:
°F = °C × 9/5 + 32
°C = (°F − 32) × 5/9
Skąd bierze się 9/5? Woda zamarza w 0 °C (32 °F) i wrze w 100 °C (212 °F). Zakres Fahrenheita to 212 − 32 = 180 stopni. Zakres Celsjusza to 100 stopni. 180/100 = 9/5.
Celsjusz ↔ Kelwin:
K = °C + 273.15
°C = K − 273.15
Kelwin używa tej samej wielkości stopnia co Celsjusz, ale zaczyna się od zera absolutnego (−273,15 °C). Nie istnieją ujemne wartości w Kelwinach.
Fahrenheit ↔ Rankine:
°R = °F + 459.67
Rankine ma się do Fahrenheita tak, jak Kelwin do Celsjusza — ta sama wielkość stopnia, ale liczona od zera absolutnego. Używana głównie w amerykańskiej termodynamice inżynierskiej.
Ciekawostka: −40° to punkt, w którym Celsjusz i Fahrenheit się przecinają. −40 °C = −40 °F dokładnie.
Pogłębione studium: Wzory przeliczania temperatury, kod w 5 językach i pułapki API pogodowych opisuje to szczegółowo.
Przeliczanie temperatury w kodzie
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)
Sztuczka pamięciowa dla temperatury
Aby z grubsza oszacować Celsjusza na Fahrenheita: podwoić i dodać 30. Działa dobrze w zakresie 0–30 °C:
- 20 °C → 40 + 30 = 70 °F (dokładnie: 68 °F)
- 30 °C → 60 + 30 = 90 °F (dokładnie: 86 °F)
Przy ekstremalnych temperaturach błąd rośnie, ale przy pogodzie i gotowaniu wynik jest wystarczająco blisko.
Kluczowe punkty odniesienia temperatury
| Zdarzenie | °C | °F | K |
|---|---|---|---|
| Zero absolutne | −273,15 | −459,67 | 0 |
| Woda zamarza | 0 | 32 | 273,15 |
| Temperatura pokojowa | 20–22 | 68–72 | 293–295 |
| Ciało człowieka | 37 | 98,6 | 310,15 |
| Woda wrze | 100 | 212 | 373,15 |
| Piekarnik (umiarkowany) | 180 | 356 | 453,15 |
Przeliczanie objętości i cieczy: wzory i kod
Przeliczanie objętości ma wyjątkową pułapkę: galon amerykański i galon imperialny nie mają tego samego rozmiaru. Można przeliczać między 15 jednostkami objętości za pomocą naszego przelicznika objętości.
Kluczowe współczynniki przeliczania objętości
| Przeliczenie | Współczynnik |
|---|---|
| litry → galony amerykańskie | ÷ 3,78541 |
| litry → galony imperialne | ÷ 4,54609 |
| cup amerykańskie → mililitry | × 236,588 |
| uncje płynne (US) → mililitry | × 29,5735 |
| łyżki stołowe (US, tbsp) → mililitry | × 14,787 |
| łyżeczki (US, tsp) → mililitry | × 4,929 |
Pułapka galonu amerykańskiego vs imperialnego
Łapie ona ludzi częściej, niż można by się spodziewać:
| Jednostka | US Customary | Imperialny (UK) | Różnica |
|---|---|---|---|
| 1 galon | 3,785 L | 4,546 L | 20,1% |
| 1 uncja płynna | 29,57 mL | 28,41 mL | 3,9% |
| 1 pinta | 473,2 mL | 568,3 mL | 20,1% |
Galon amerykański wywodzi się z angielskiego galona winnego z 1707 roku. Galon imperialny został przedefiniowany w 1824 roku jako objętość 10 funtów wody w 62 °F. Wynik: galon imperialny jest około jednej piątej większy.
Ma to znaczenie w realnych scenariuszach. Jeśli brytyjska recenzja samochodu podaje zużycie paliwa w milach na galon, są to galony imperialne. Bezpośrednie porównanie z amerykańskimi wartościami mpg — bez przeliczenia — sprawia, że brytyjski samochód wygląda na 20% bardziej oszczędny, niż jest w rzeczywistości względem miary amerykańskiej.
Przeliczanie objętości w kodzie
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
Budowanie uniwersalnego przelicznika jednostek w JavaScript
Jeśli potrzebny jest przelicznik we własnym projekcie, oto zwięzła implementacja. Sztuczka: zdefiniować relację każdej jednostki względem jednostki bazowej, a następnie przeliczać przez bazę.
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
Funkcja convert obsługuje każdą jednostkę, której relacja do bazy jest prostym stosunkiem. Temperatura ma własną funkcję ze względu na przesunięcie. units można rozszerzyć o dowolną nową jednostkę — wystarczy podać jej typ bazowy i współczynnik przeliczenia.
FAQ
Ile centymetrów jest w calu?
Dokładnie 2,54 cm. To nie przybliżenie — to dokładny współczynnik przeliczenia ustanowiony przez międzynarodowe porozumienie o jardzie i funcie z 1959 roku. Aby przeliczyć cale na centymetry, należy pomnożyć przez 2,54. Aby przejść w drugą stronę, należy podzielić przez 2,54. Przelicz długości natychmiast za pomocą naszego darmowego narzędzia.
Jaki jest wzór na przeliczenie stopni Celsjusza na Fahrenheita?
°F = °C × 9/5 + 32. Na przykład 20 °C = 20 × 1,8 + 32 = 68 °F. Stosunek 9/5 wynika z 180-stopniowego zakresu Fahrenheita (32 °F do 212 °F) podzielonego przez 100-stopniowy zakres Celsjusza (0 °C do 100 °C). Sprawdź dokładny wynik za pomocą naszego narzędzia do temperatury.
Dlaczego galony amerykański i imperialny się różnią?
Galon amerykański (3,785 L) wywodzi się z angielskiego galona winnego z 1707 roku, podczas gdy galon imperialny (4,546 L) został przedefiniowany w 1824 roku na podstawie objętości 10 funtów wody destylowanej. Ta różnica rzędu 20% ma znaczenie przy porównaniach zużycia paliwa, skalowaniu przepisów i wysyłce międzynarodowej.
Ile funtów jest w kilogramie?
1 kg = 2,20462 lbs. Sztuczka pamięciowa: podwoić wartość w kg i dodać 10%. Czyli 70 kg → 140 + 14 = 154 lbs. Dokładna odpowiedź to 154,32 lbs.
Czym jest zero absolutne?
0 K = −273,15 °C = −459,67 °F. To teoretycznie najniższa temperatura, w której ustaje wszelki ruch cząsteczek. Żadne laboratorium nigdy nie osiągnęło dokładnie 0 K, choć eksperymenty zbliżyły się do tej wartości na miliardowe części stopnia.
Czy uncja trojańska to to samo co zwykła uncja?
Nie. Uncja trojańska (31,1035 g) jest około 10% cięższa niż standardowa uncja avoirdupois (28,3495 g). Uncje trojańskie stosowane są wyłącznie do metali szlachetnych — złota, srebra, platyny. Jeśli widać cenę złota podaną „za uncję”, zawsze chodzi o uncje trojańskie.
Jaki jest najłatwiejszy sposób na przeliczenie mil na kilometry w pamięci?
Wystarczy użyć ciągu Fibonacciego. Kolejne liczby Fibonacciego przybliżają stosunek 1:1,609 między milami a kilometrami: 5 mi ≈ 8 km, 8 mi ≈ 13 km, 13 mi ≈ 21 km. Dla dowolnych wartości wystarczy pomnożyć mile przez 1,6.
Podsumowanie
Cztery rzeczy do zapamiętania:
- Metryczny jest dziesiętny. Przechodzenie między jednostkami metrycznymi to przesuwanie przecinka dziesiętnego. Bez konieczności wkuwania.
- Imperialny wymaga sprawdzania. 12 cali w stopie, 3 stopy w jardzie, 5 280 stóp w mili — nie ma żadnego wzorca.
- Temperatura ma przesunięcie. W przeciwieństwie do pozostałych przeliczeń nie wystarczy mnożyć. Zawsze trzeba zastosować wzór: °F = °C × 9/5 + 32.
- US ≠ imperialny dla cieczy. Galon amerykański i galon imperialny różnią się o 20%. Zawsze warto sprawdzić, z którym ma się do czynienia.
Trzeba coś przeliczyć właśnie teraz? Można skorzystać z naszych darmowych narzędzi działających w przeglądarce — bez rejestracji, dane nie opuszczają urządzenia:
- Przelicznik długości — 16 jednostek, metryczne na imperialne i z powrotem
- Przelicznik wagi — kg, lbs, oz, stone, uncje trojańskie
- Konwerter temperatury — Celsjusz, Fahrenheit, Kelwin, Rankine
- Przelicznik objętości — litry, galony, cup, uncje płynne