単位変換の完全ガイド:公式・コード・ツールを網羅
レシピに「350°F」と書いてあるが摂氏しか分からない。配送ラベルに「22 lbs」とあるがシステムはキログラムを要求する。クライアントがフィートで寸法を送ってきたがCADソフトはメートルを使う。単位変換は些細なことに思えるが、間違えると被害は大きい――料理の失敗程度で済めばいいが、3億2700万ドルの火星探査機が墜落した例もある。
本記事では最も頻繁に変換する4種類の測定値――長さ、重さ、温度、体積――を取り上げ、正確な公式、JavaScriptとPythonのコード、暗算用の早見表を提供する。
なぜ単位変換でまだミスが起きるのか
単位エラーは過去の問題だと思うかもしれない。そうではない。
1999年、NASAの火星気候探査機(Mars Climate Orbiter)が火星大気圏で分解した。原因:一方のチームがポンド力・秒を使い、もう一方がニュートン・秒を使っていた。数ヶ月の軌道計算で誰も不一致に気づかなかった。損失:3億2760万ドル。
1983年、エア・カナダ143便(「ギムリー・グライダー」)が飛行中に燃料切れを起こした。地上スタッフが燃料をポンドで計算し、機体システムはキログラムを前提としていたため、実際の搭載量は必要量の半分以下だった。
日常的によくあるミス:
- USガロン ≠ 英ガロン。 約20%の差がある。どちらのガロンか分からなければ燃費比較は無意味。
- トロイオンス ≠ 常衡オンス。 金価格の「1オンスあたり」はトロイオンス(31.1 g)であり、キッチンスケールの常衡オンス(28.35 g)ではない。
- 温度変換は単純な掛け算ではない。 オフセットがあり、忘れると大きく間違える。
メートル法 vs ヤード・ポンド法:2つの体系、1つの地球
| 項目 | メートル法(SI) | ヤード・ポンド法 |
|---|---|---|
| 設計原理 | 十進法――10の累乗で単位が変わる | 不統一――12 in/ft、3 ft/yd、5,280 ft/mi |
| 長さ | メートル (m) | フィート (ft)、インチ (in)、マイル (mi) |
| 質量 | キログラム (kg) | ポンド (lb)、オンス (oz) |
| 温度 | 摂氏 (°C)、ケルビン (K) | 華氏 (°F) |
| 体積 | リットル (L) | ガロン (gal)、パイント (pt)、カップ |
| 使用国 | 世界の約95% | アメリカ、ミャンマー、リベリア |
メートル法は国際度量衡局(BIPM)が管理している。2019年以降、SI基本単位7つすべてが光速やプランク定数などの物理定数で定義されている。
ヤード・ポンド法には実は2つの変種がある:米国慣用単位(US customary)と英帝国単位(Imperial)。名前が同じでも定義が異なる単位があり、ガロンと液量オンスがその典型例だ。
なお、日本には伝統的な「尺貫法」もある。1尺 = 約30.3 cm、1貫 = 3.75 kg。現在は法律上メートル法が標準だが、建築や和裁などの分野では今でも使われている。
長さの変換:公式とコード
長さは最も頻繁に変換される測定タイプだ。長さ変換ツールで即座に結果を得るか、以下の公式をコードに組み込める。
主要な換算係数
すべて正確な値で、1959年の国際ヤード・ポンド協定で定められた:
| 変換 | 係数 | 精度 |
|---|---|---|
| インチ → センチメートル | × 2.54 | 正確 |
| フィート → メートル | × 0.3048 | 正確 |
| ヤード → メートル | × 0.9144 | 正確 |
| マイル → キロメートル | × 1.609344 | 正確 |
| 海里 → メートル | × 1,852 | 正確 |
コード実装
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インチモニター)
console.log(lengthConvert.miToKm(26.2)); // 42.164928 (マラソン)
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インチ | 2.54 cm |
| 1フィート | 30.48 cm |
| 6フィート | 1.8288 m |
| 1ヤード | 0.9144 m |
| 1マイル | 1.609 km |
| 1海里 | 1.852 km |
重さの変換:公式とコード
重さ変換ツールでオンライン変換できる。
主要な換算係数
| 変換 | 係数 |
|---|---|
| キログラム → ポンド | × 2.20462 |
| ポンド → キログラム | × 0.453592 |
| オンス(常衡) → グラム | × 28.3495 |
| トロイオンス → グラム | × 31.1035 |
| ストーン → キログラム | × 6.35029 |
トロイオンスの罠
貴金属や金融データを扱う場合は要注意:トロイオンス(31.1035 g)は標準的な常衡オンス(28.3495 g)より約10%重い。金・銀・プラチナの価格は常にトロイオンスで表示される。
コード実装
JavaScript:
const weightConvert = {
kgToLbs: (kg) => kg * 2.20462,
lbsToKg: (lbs) => lbs * 0.453592,
ozToGrams: (oz) => oz * 28.3495,
stoneToKg: (st) => st * 6.35029,
};
console.log(weightConvert.kgToLbs(70)); // 154.3234
console.log(weightConvert.ozToGrams(8)); // 226.796
Python:
def kg_to_lbs(kg: float) -> float:
return kg * 2.20462
def oz_to_grams(oz: float) -> float:
return oz * 28.3495
print(kg_to_lbs(70)) # 154.3234
暗算テクニック
kgをポンドに: 2倍にして10%を足す。例:70 kg → 140 + 14 = 154ポンド(正確値:154.32)。
早見表:重さ
| ヤード・ポンド法 | メートル法 |
|---|---|
| 1オンス | 28.35 g |
| 1ポンド | 453.6 g |
| 1ストーン(14ポンド) | 6.35 kg |
| 1ショートトン(2,000ポンド) | 907.2 kg |
| 1トロイオンス | 31.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(完全に一致)。
コード実装
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,
};
console.log(tempConvert.cToF(100)); // 212(水の沸点)
console.log(tempConvert.fToC(98.6)); // 37(体温)
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
print(c_to_f(100)) # 212.0
print(f_to_c(98.6)) # 37.0
暗算テクニック
摂氏→華氏の概算:2倍にして30を足す。
- 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 |
体積の変換:公式とコード
体積変換にはユニークな罠がある:USガロンと英ガロンはサイズが違う。体積変換ツールで15種類の単位間で変換できる。
主要な換算係数
| 変換 | 係数 |
|---|---|
| リットル → USガロン | ÷ 3.78541 |
| リットル → 英ガロン | ÷ 4.54609 |
| USカップ → ミリリットル | × 236.588 |
| US液量オンス → ミリリットル | × 29.5735 |
USガロン vs 英ガロン
| 単位 | US | 英国 | 差 |
|---|---|---|---|
| 1ガロン | 3.785 L | 4.546 L | 20.1% |
| 1液量オンス | 29.57 mL | 28.41 mL | 3.9% |
| 1パイント | 473.2 mL | 568.3 mL | 20.1% |
USガロンは1707年の英国ワインガロンに由来する。英ガロンは1824年に蒸留水10ポンドの体積として再定義された。結果として英ガロンはUSガロンより約5分の1大きい。
コード実装
JavaScript:
const volumeConvert = {
litersToUSGal: (l) => l / 3.78541,
usGalToLiters: (gal) => gal * 3.78541,
cupsToMl: (cups) => cups * 236.588,
flOzToMl: (floz) => floz * 29.5735,
};
console.log(volumeConvert.litersToUSGal(3.78541)); // 1
console.log(volumeConvert.cupsToMl(2)); // 473.176
Python:
def liters_to_us_gal(liters: float) -> float:
return liters / 3.78541
def cups_to_ml(cups: float) -> float:
return cups * 236.588
print(liters_to_us_gal(3.78541)) # ~1.0
print(cups_to_ml(2)) # 473.176
JavaScriptで汎用単位変換器を作る
プロジェクトに変換機能が必要なら、コンパクトな実装を紹介する。各単位と基準単位の関係を定義し、基準単位を経由して変換する。
const units = {
// 長さ(基準:メートル)
m: { base: 'm', factor: 1 },
km: { base: 'm', factor: 1000 },
cm: { base: 'm', factor: 0.01 },
in: { base: 'm', factor: 0.0254 },
ft: { base: 'm', factor: 0.3048 },
mi: { base: 'm', factor: 1609.344 },
// 重さ(基準:グラム)
g: { base: 'g', factor: 1 },
kg: { base: 'g', factor: 1000 },
lb: { base: 'g', factor: 453.592 },
oz: { base: 'g', factor: 28.3495 },
// 体積(基準:ミリリットル)
ml: { base: 'ml', factor: 1 },
l: { base: 'ml', factor: 1000 },
usgal: { base: 'ml', factor: 3785.41 },
uscup: { base: 'ml', factor: 236.588 },
};
function convert(value, fromUnit, toUnit) {
const from = units[fromUnit];
const to = units[toUnit];
if (!from || !to || from.base !== to.base) {
throw new Error(`${fromUnit}から${toUnit}への変換は不可`);
}
return value * from.factor / to.factor;
}
function convertTemp(value, from, to) {
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(`不明な単位: ${from}`);
if (to === 'C') return c;
if (to === 'F') return c * 9 / 5 + 32;
if (to === 'K') return c + 273.15;
throw new Error(`不明な単位: ${to}`);
}
console.log(convert(26.2, 'mi', 'km')); // 42.164928
console.log(convert(70, 'kg', 'lb')); // 154.324...
console.log(convertTemp(100, 'C', 'F')); // 212
FAQ
1インチは何センチメートル?
正確に2.54 cm。近似値ではなく、1959年の国際ヤード・ポンド協定で定められた正確な換算係数だ。長さ変換ツールで即座に変換できる。
摂氏を華氏に変換する公式は?
°F = °C × 9/5 + 32。例:20°C = 20 × 1.8 + 32 = 68°F。9/5の比率は華氏180度の幅(32°Fから212°F)を摂氏100度の幅で割ったもの。温度変換ツールで確認できる。
USガロンと英ガロンはなぜ違う?
USガロン(3.785 L)は1707年の英国ワインガロンに由来し、英ガロン(4.546 L)は1824年に蒸留水10ポンドの体積として再定義された。約20%の差は燃費比較やレシピ換算で無視できない。
1キログラムは何ポンド?
1 kg = 2.20462ポンド。暗算法:2倍にして10%を足す。70 kg → 140 + 14 = 154ポンド(正確値:154.32)。
絶対零度とは?
0 K = −273.15°C = −459.67°F。分子の熱運動が完全に停止する理論上の最低温度。どの研究室もまだ正確に0 Kには到達していない。
トロイオンスと通常のオンスは同じ?
違う。トロイオンス(31.1035 g)は常衡オンス(28.3495 g)より約10%重い。金・銀・プラチナの価格は常にトロイオンスで表示される。
マイルをキロメートルに暗算で変換する簡単な方法は?
フィボナッチ数列を使う。連続するフィボナッチ数が1:1.609の比率を近似する:5 mi ≈ 8 km、8 mi ≈ 13 km、13 mi ≈ 21 km。それ以外の値は1.6を掛ける。
まとめ
覚えておくべき4つのポイント:
- メートル法は十進法。 メートル法の単位間変換は小数点の移動だけ。
- ヤード・ポンド法は暗記が必要。 12インチ = 1フィート、3フィート = 1ヤード、5,280フィート = 1マイル――規則性がない。
- 温度にはオフセットがある。 単純な掛け算ではなく公式が必要:°F = °C × 9/5 + 32。
- 液体はUS ≠ 英国。 USガロンと英ガロンは20%違う。どちらか必ず確認すること。
今すぐ変換したい場合は、ブラウザベースの無料ツールをどうぞ。登録不要、データはデバイスから外に出ない: