表示: Delphi
C++
表示設定
変換の実行
提供:RAD Studio XE2
RTL の利用:インデックス への移動
変換が単純か複雑かを問わず,変換を実行するには Convert 関数を使用します。Convert 関数は単純な構文と 2 次構文で構成されます。2 次構文は,複雑な測定対象を変換する働きをします。
目次 |
単純な変換を実行する
Convert 関数を使用すると,計量単位を別の計量単位に変換できます。Convert 関数は,同じ測定対象(距離,面積,時間,温度など)を測定する単位どうしの変換を行います。
Convert 関数で変換するには,変換前の単位と変換後の単位を指定する必要があります。計量単位を識別するには TConvType 型を使用します。
下の例は,温度の単位を華氏からケルビン(絶対温度単位)に変換しています。
TempInKelvin := Convert(StrToFloat(Edit1.Text), tuFahrenheit, tuKelvin);
TempInKelvin = Convert(StrToFloat(Edit1->Text), tuFahrenheit, tuKelvin);
複雑な変換を実行する
計量単位の比率を変換するという複雑な変換も,Convert 関数を使用します。たとえば,1 時間当たりのマイル数を 1 分当たりのメートル数に変換して速度を計算する,1 分当たりのガロンを 1 時間当たりのリットルに変換して流量を計算する,といったケースです。
たとえば次の呼び出しは,マイル/ガロンをキロメートル/リットルに変換します。
nKPL := Convert(StrToFloat(Edit1.Text), duMiles, vuGallons, duKilometers, vuLiter);
double nKPL = Convert(StrToFloat(Edit1.Text), duMiles, vuGallons, duKilometers, vuLiter);
変換前の単位と変換後の単位は同じ変換ファミリーに属していなければなりません(つまり,測定対象が同じでなければならない)。双方の単位に互換性がないと,Convert 関数は EConversionError 例外を生成します。2 つの TConvType 値が同じ変換ファミリーに属しているかどうかを調べるには,CompatibleConversionTypes を呼び出します。
StdConvs ユニットは,TConvType 値のファミリーを定義しています。