calc / unit

単位変換ツール

長さ・重量・温度・速度・面積の単位をリアルタイムで変換します。 入力すると全単位への一括変換結果を一覧表示。入力データはサーバーに送信されません。

数値を入力すると全単位への変換結果が表示されます

使い方

01
  1. 上部のタブからカテゴリ(長さ・重量・温度・速度・面積)を選択します
  2. 「変換元」フィールドに数値を入力します
  3. 変換元と変換先の単位をプルダウンから選択します
  4. 入力と同時にリアルタイムで変換結果が表示されます
  5. 下部のテーブルには、選択した変換元単位から全単位への変換結果が一覧表示されます

実装コード

02

変換ロジックは「基準単位を経由する2段階変換」で実装しています。各カテゴリに基準単位(長さはm、重量はkg、温度は°C、速度はm/s、面積はm²)を設け、入力値を一旦基準単位に変換してから目的単位へ変換します。外部ライブラリは不要です。

export type UnitCategory = 'length' | 'weight' | 'temperature' | 'speed' | 'area'

export type UnitDef = {
  id: string
  label: string
  toBase: (v: number) => number   // 基準単位へ変換
  fromBase: (v: number) => number // 基準単位から変換
}

// 長さの基準単位: メートル (m)
// 重量の基準単位: キログラム (kg)
// 温度の基準単位: 摂氏 (°C)
// 速度の基準単位: m/s
// 面積の基準単位: m²

export function convert(
  value: number,
  fromId: string,
  toId: string,
  category: UnitCategory
): number {
  const units = UNIT_DEFS[category]
  const from = units.find(u => u.id === fromId)
  const to   = units.find(u => u.id === toId)
  if (!from || !to) throw new Error(`Unknown unit: ${fromId} or ${toId}`)
  // 1. 入力値を基準単位に変換
  const baseValue = from.toBase(value)
  // 2. 基準単位から目的単位へ変換
  return to.fromBase(baseValue)
}

よくある使用例・注意点

03
海外レシピの重量変換
英語レシピで使われるオンス (oz) やポンド (lb) をグラムに変換するのに便利です。例えば 8 oz = 226.8 g のように確認できます。
気温の確認(°C / °F)
海外の天気予報や設定値で表示される華氏 (°F) を摂氏 (°C) に変換できます。100°F は約 37.8°C(体温に近い)、-40°F と -40°C は同一値です。
速度変換(km/h ↔ mph ↔ knot)
海外ナビや航空・航海アプリで使われる mph やノットを km/h に変換できます。高速道路の 100 km/h は約 62.1 mph、1 knot = 1.852 km/h です。
土地面積の変換(ha / acre)
不動産や農業分野で使われるヘクタール (ha) やエーカー (acre) を m² や km² に変換できます。1 ha = 10,000 m²、1 acre ≒ 4,047 m² です。
浮動小数点精度について
JavaScriptの IEEE 754 浮動小数点演算を使用しているため、変換結果に微小な誤差が生じる場合があります(例:0.1 + 0.2 = 0.30000000000000004 の問題)。精密計算が必要な場合は専用ツールをご利用ください。

関連ツール

04
Byte単位変換進数変換日時差分計算

ソースコード

05

このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。

GitHub でコードを見る →