ConvUtils.Convert

From RAD Studio VCL Documentation (Japanese)
Jump to: navigation, search

Contents

Delphi の情報

ファイル ConvUtils.pas

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


ユニット: ConvUtils

種類: 関数

可視性: public

C++ の情報

ファイル ConvUtils.hpp

	double __fastcall Convert(double AValue, unsigned short AFrom, unsigned short ATo);


ユニット: ConvUtils

種類: 関数

説明

Convert は,尺度の単位を変換します。


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);

AFrom と ATo,AFrom1 と ATo1,および AFrom2 と ATo2 で指定される単位は,同じ変換ファミリーに属する必要があります。つまり,測定の対象が同じでなければならないということです。2 つの TConvType 値が同じ変換ファミリーに属しているかどうかを調べるには,CompatibleConversionTypes を呼び出します。その単位が変換可能ではない場合,Convert は EConversionError 例外を生成します。

メモ:  StdConvs ユニットは,TConvType 値のファミリーを定義しています。定義済みのファミリーおよび各ファミリーに属する単位のリストについては,変換ファミリー変数を参照してください。また,RegisterConversionType 関数および RegisterConversionFamily 関数を使用すると,独自の変換ファミリーおよび単位を登録できます。
メモ:  Convert が変換を実行するときには,まず AValue が単位 AFrom からその変換ファミリーの基本単位に変換され,その後に基本単位が単位 ATo に変換されます。AFrom と ATo の単位が変換ファミリーの基本単位と大幅に異なる場合は,オーバーフローなどの問題が発生することがあります。範囲の広い変換ファミリーの一部分だけを使って範囲の狭い独自の変換ファミリーを登録すると,この問題を解決できます。

関連リンク

Personal tools