System.ConvUtils.Convert

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

function Convert(const AValue: Double; const AFrom, ATo: TConvType): Double;
function Convert(const AValue: Double; const AFrom1, AFrom2, ATo1, ATo2: TConvType): Double;

C++

extern DELPHI_PACKAGE double __fastcall Convert(const double AValue, const TConvType AFrom, const TConvType ATo)/* overload */;

プロパティ

種類 可視性 ソース ユニット
function public
System.ConvUtils.pas
System.ConvUtils.hpp
System.ConvUtils System.ConvUtils


説明

測定値をある単位から別に単位へ、変換します。

Convert を呼び出すと、AValue の値を、ある測定単位から別の単位へと、変換することができます。

最初の構文を使用する場合、AFrom パラメータには、測定値 AValue の現在の単位を指定します。Convert は、ATo で指定された単位の対応する測定値を返します。たとえば次の行では、温度を華氏から摂氏に変換しています。

TempInKelvin := Convert(StrToFloat(Edit1.Text), tuFahrenheit, tuKelvin);
TempInKelvin = Convert(StrToFloat(Edit1->Text), tuFahrenheit, tuKelvin);

2 番目の構文を使用する場合、AFrom1 パラメータおよび AFrom2 パラメータでは AValue の現在の単位を指定します。ここでの AValue の単位は、AFrom1/AFrom2 です。Convert は、ATo1/ATo2 で指定された単位の対応する測定値を返します。たとえば次の呼び出しでは、マイル/ガロンからキロメートル/リットルに変換します。

nKPL := Convert(StrToFloat(Edit1.Text), duMiles, vuGallons, duKilometers, vuLiter);
double nKPL = Convert(StrToFloat(Edit1.Text), duMiles, vuGallons, duKilometers, vuLiter);

AFromAToAFrom1ATo1、または AFrom2ATo2 で指定される単位は、同じ変換ファミリーに属していなければなりません(測定の対象が同じでなければならない)。2 つの TConvType 値が同じ変換ファミリーに属しているかをチェックするには、CompatibleConversionTypes を呼び出します。単位に互換性がなかった場合、Convert は EConversionError 例外を発生させます。

メモ: ユニット StdConvs では、TConvType 値となるファミリーが複数定義されています。定義済みファミリー、および各ファミリーに属する測定値の単位のリストについては、変換ファミリーの変数を参照してください。また独自の変換ファミリーや単位を、関数 RegisterConversionTypeRegisterConversionFamily を使用して登録することができます。

メモ: Convert は、AValue を、まず単位 AFrom から変換ファミリーの基本単位に変換し、その後、その基本単位から単位 ATo へ変換することで、要求された変換処理を行っています。AFromATo の単位が、変換ファミリーの基本単位と大幅に異なる場合、オーバーフローといった問題を引き起こすことがあります。範囲の広い変換ファミリーのサブセットを利用して、より範囲の狭い独自の変換ファミリーを登録すると、このような問題を改善することができます。

関連項目