変換の実行
計量単位の変換 への移動
Convert 関数を使用すると、単純な変換も複雑な変換も実行できます。 構文は単純で、複雑な種類の測定単位間で変換を実行するための第 2 の構文も用意されています。
単純な変換の実行
Convert 関数を使用すると、測定値を一方の単位群からもう一方の単位群に変換することができます。Convert 関数では、同じ種類の物(距離、面積、時間、温度など)を測定する単位間で変換します。
Convert を使用するには、変換元の単位と変換先の単位を指定する必要があります。TConvTypetype を使用すると、測定単位を識別できます。
たとえば、以下では、温度をカ氏温度から絶対温度に変換しています。
Delphi の場合:
TempInKelvin := Convert(StrToFloat(Edit1.Text), tuFahrenheit, tuKelvin);
C++ の場合:
TempInKelvin = Convert(StrToFloat(Edit1->Text), tuFahrenheit, tuKelvin);
複雑な変換の実行
Convert 関数を使用すると、2 種類の測定値の比率間で、より複雑な変換を実行することもできます。そのような変換を使用する必要があるかもしれないのは、たとえば、速度を計算するためにマイル毎時をメートル毎分に変換する場合や、流量を計算するためにガロン毎分をリットル毎時に変換する場合などです。
たとえば、以下の呼び出しでは、マイル毎ガロンをキロメートル毎リットルに変換しています。
Delphi の場合:
nKPL := Convert(StrToFloat(Edit1.Text), duMiles, vuGallons, duKilometers, vuLiter);
C++ の場合:
double nKPL = Convert(StrToFloat(Edit1.Text), duMiles, vuGallons, duKilometers, vuLiter);
変換しようとする単位は同じ変換ファミリに属している必要があります(同じ物を測る必要があります)。単位に互換性がない場合、Convert は EConversionError 例外を発生させます。2 つの TConvType 値が同じ変換ファミリに属しているかどうかを調べるには、CompatibleConversionTypes を呼び出します。
System.StdConvs ユニットには、TConvType 値のファミリがいくつか定義されています。