アプリ

単位換算アプリ

長さ・重さ・面積・体積・温度・速さの単位をまとめて換算するWebアプリを公開しました。数値を1つ入れると、同じジャンルの全単位の値が同時に出ます。

アプリを開く

使い方

  1. 上部のタブでジャンル(長さ/重さ/面積/体積/温度/速さ)を選びます。
  2. 数値を入力し、右のプルダウンで換算元の単位を選びます。
  3. 下の一覧に、同じジャンルの全単位に換算した値が並びます。換算元の行は水色で示されます。
  4. 行をクリック(スマホはタップ)すると、その値をクリップボードにコピーします。

入力欄は全角数字とカンマ区切りも受け付けます。「10」や「1,000」はそのまま解釈されます。

何に使えるか

インチ・フィート・ポンドといったヤードポンド法の単位が出てきたときの確認用です。海外製機材のデータシートで寸法がインチ表記、重量がポンド表記になっているケースはよくあります。ラックマウント機器の奥行きや、電源ケーブルの許容曲げ半径を調べるときに使えます。

尺貫法にも対応しました。面積は坪と畳、長さは寸・尺・間、重さは匁・斤・貫、体積は合・升・斗を入れてあります。物件情報の「専有面積○○m2」が何坪・何畳なのかを見るのに便利です。

速さのジャンルにはノットを入れてあります。km/h との対応が感覚的に分かりにくい単位なので、天気予報の風速や航空・船舶の速度を読むときに使えます。

技術メモ

HTML・CSS・JavaScript だけで作った index.html 1枚のアプリです。外部ライブラリもCDNも外部APIも使っていません。サイズは14KB程度で、読み込み後はオフラインでも動作します。

単位の定義は「基準単位に対する倍率」の形で持たせ、換算は必ず基準単位を経由する2段階にしました。温度だけは倍率では表せない(加減算が要る)ので、その単位にだけ変換関数を持たせています。

// 通常の単位は倍率、温度だけ関数を持つ
function toBase(unit, v){
  return unit.to ? unit.to(v) : v * unit.f;
}
function fromBase(unit, v){
  return unit.from ? unit.from(v) : v / unit.f;
}

すべての組み合わせの変換表を持つと単位数の2乗で定義が増えますが、基準単位を経由する方式なら1単位あたり1行で済みます。単位を追加するときも既存の定義に手を入れる必要がありません。

表示は有効数字9桁で丸めたうえで末尾のゼロを落とし、整数部に3桁区切りを入れています。10の15乗以上、10のマイナス9乗未満になる場合だけ指数表記に切り替えます。コピーは navigator.clipboard を使い、これが使えない環境では textarea と execCommand にフォールバックします。

換算率は計量法の値(1尺 = 10/33 m、1匁 = 3.75 g)を使っています。畳だけは規格が複数あるため、不動産表示の基準である1畳 = 1.62 m2で固定しました。地域や物件によって実寸は異なるので、畳の換算は目安として見てください。マッハも音速を340.29 m/s に固定した概算です。

動作環境はPC・スマートフォンのモダンブラウザです。画面幅が狭い場合は入力欄が縦に並びます。

-アプリ
-, ,