EN JA
UNITS(1)
UNITS(1) FreeBSD General Commands Manual UNITS(1)

名称

unitsいろいろな単位の換算を行う

書式

units [ -f filename][ -qv][ from-unit to-unit]

オプション

-f filename
単位換算用のデータファイル名を指定します。
-q
求める単位の入力プロンプトと、換算する単位の入力プロンプトの表示を抑制します。
-v
バージョン番号を表示します。
from-unit to-unit
コマンドラインから直接、単位換算を行ないます。プロンプトは表示せず、指定した換算結果を表示し終了します。

解説

units プログラムは、様々な単位で表された量を他の単位に換算します。 units プログラムは、乗法またはアファインスケール変換だけを扱うことができます。入力プロンプトを介して、対話的に動作します:

    You have: meters 
    You want: feet 
            * 3.2808399 
            / 0.3048 
 
    You have: cm^3 
    You want: gallons 
            * 0.00026417205 
            / 3785.4118 
 
    You have: meters/s 
    You want: furlongs/fortnight 
            * 6012.8848 
            / 0.00016630952 
 
    You have: 1|2 inch 
    You want: cm 
            * 1.27 
            / 0.78740157 
 
    You have: 85 degF 
    You want: degC 
 29.444444

単位の中で累乗を表す部分は、上の例のように `^' を用いて表すか、あるいは単に連結して表記します。例えば `cm3' は、`cm^3' と等価です。単位の掛け算を表すには、空白、ダッシュあるいはアスタリスクを用います。単位の割り算には、`/' を用います。掛け算は、割り算より高い優先度を持ちますから、 `m/s/s' は、`m/s^2' あるいは `m/s s' と同じ意味になります。数値の割り算には、縦棒 (`|') を用いなければなりません。例えば 1 メートルの半分を変換するには、`1|2 meter' と書きます。もし `1/2 meter' と書くと、`0.5/meter' と解釈します。換算できない単位型を指定すると、それに対応していない旨のメッセージを表示し、各単位の簡略形を示します:

    You have: ergs/hour 
    You want: fathoms kg^2 / day 
    conformability error 
            2.7777778e-11 kg m^2 / sec^3 
            2.1166667e-05 kg^2 m / sec

換算に必要な情報は、換算用データベースファイルから読み込まれます。デフォルトのファイルには、よく用いられる単位のほとんど、省略形、メートル法の接頭語、などの定義が含まれています。以下のような自然定数もいくつか含まれています:

pi 円周率
c 光速
e 電子の電荷
g 重力加速度
force g と同じ
mole アボガドロ数
water 単位水柱の圧力
mercury 単位水銀柱の圧力
au 天文単位

`pound' (ポンド) は、質量の単位です。複合した単位名は、連結して記述します。 `pound force' は、力の単位です。 `ounce' (オンス) もまた質量の単位です。液体のオンスは、`floz' です。英米で同じ単位の値が異なる場合、英国式単位の前に `br' を付けます。通貨単位の場合には、`belgiumfranc' や `britainpound' のように頭に国名を付けて区別します。単位を探す際に指定された文字列そのものが単位名として見つからない場合、 units は、末尾の `s' や `es' を取り除いて再度チェックします。

どのような単位が利用可能か、については、標準の単位ファイルを参照して下さい。独自の単位を追加したいなら、独自のファイルを指定できます。単位の指定は、1 行に名前とそれに相当する量を書きます。新しい単位は、古い単位に基づいて定義し、単位を変換していくと `!' 印を付した原始単位にたどりつくように注意してください。不注意で単位定義に無限ループがあっても units は、それを検知しません。単位定義ファイル中において `/' で始まる行は、コメントです。

接頭語の定義も標準的な単位と同形式で行ないますが、接頭語名の末尾にダッシュをつけます。末尾の `s' や `es' を取り除いても、単位名として見つからない場合は、接頭語かどうかがチェックされ、接頭語を取り除くと有効な基本単位名となるかを調べます。

基本的な単位を定義する簡単な単位ファイルの例を以下に示します。

m !a!
sec !b!
micro- 1e-6
minute 60 sec
hour 60 min
inch 0.0254 m
ft 12 inches
mile 5280 ft

関連ファイル

/usr/share/misc/units.lib
標準単位ライブラリ

作者

Adrian Mariano <adrian@cam.cornell.edu>

バグ

接頭語に `/' が含まれるとびっくりする結果を生みます。

ユーザが入力する累乗部分は、1 桁でなければなりません。必要なら何度か掛け合わせて下さい。

数の除算には、`|' を用い、シンボルの除算には、`/' を用いなければなりませんが、このような区別は不要にすべきです。

このプログラムは、換算した表示桁数の制限がばらばらですし、データファイルの長さにも制限があります。

単位を格納するのにハッシュ表を用い、単位表のロードと重複チェックの時間を軽減すべきです。

July 14, 1993 FreeBSD