のデータ形式TFMTBCDField
は、 FMTBcdユニットTBcd
からのレコードです。フィールドまたはプロパティを読み取ることで、生の値を取得できます。Value
AsBCD
値が必要なものによっては、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に変換する方法を提供しません。したがって、フィールドの文字列バージョンを呼び出すという考えは問題ないようです。Integer
string
StrToInt64