calc / unit
単位変換ツール
長さ・重量・温度・速度・面積の単位をリアルタイムで変換します。 入力すると全単位への一括変換結果を一覧表示。入力データはサーバーに送信されません。
→
—
数値を入力すると全単位への変換結果が表示されます
使い方
01- 上部のタブからカテゴリ(長さ・重量・温度・速度・面積)を選択します
- 「変換元」フィールドに数値を入力します
- 変換元と変換先の単位をプルダウンから選択します
- 入力と同時にリアルタイムで変換結果が表示されます
- 下部のテーブルには、選択した変換元単位から全単位への変換結果が一覧表示されます
実装コード
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ソースコード
05このツールのソースコード(テストコードを含む)はGitHubで公開しています。 MITライセンスで自由に利用・改変できます。
GitHub でコードを見る →