のデータ形式TFMTBCDFieldは、 FMTBcdユニットTBcdからのレコードです。フィールドまたはプロパティを読み取ることで、生の値を取得できます。ValueAsBCD
値が必要なものによっては、TBcd十分な場合があります。つまり、に変換する必要がない場合がありますInt64。FMTBcdユニットは、値を加算、減算、乗算、除算する関数を提供しますTBcd。
単位は への変換を提供しませんInt64。Variant、string、Currency、Double、およびへの変換がありIntegerます。変換を記述する場合Int64、Integer変換はおそらく開始するのに適した場所なので、実装方法を見てみましょう。
function BcdToInteger(const Bcd: TBcd; Truncate: Boolean = False): Integer;
var
ABcd: TBcd;
begin
if Truncate and (BcdScale(Bcd) > 0) then
NormalizeBcd(Bcd, ABcd, Bcd.Precision, 0)
else
ABcd := Bcd;
Result := StrToInt(BcdToStr(ABcd));
end;
したがって、VCL 自体は、を通過するよりも直接的に aTBcdを anに変換する方法を提供しません。したがって、フィールドの文字列バージョンを呼び出すという考えは問題ないようです。IntegerstringStrToInt64