Data.FmtBcd.TBcd

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

Delphi

  TBcd  = record
    Precision: Byte;                        { 1..64 }
    SignSpecialPlaces: Byte;                { Sign:1, Special:1, Places:6 }
    Fraction: packed array [0..31] of Byte; { BCD Nibbles, 00..99 per Byte, high Nibble 1st }
    class operator Implicit(const str: string): TBcd;
    class operator Implicit(const d: double): TBcd;
    class operator Implicit(const I: Integer): TBcd;
    class operator Explicit(const ABcd: TBcd): string;
    class operator Explicit(const ABcd: TBcd): Integer;
    class operator Add(const A, B: TBcd): TBcd;
    class operator Subtract(const A, B: TBcd): TBcd;
    class operator Multiply(const A, B: TBcd): TBcd;
    class operator Divide(const A, B: TBcd): TBcd;
    class operator Negative(const A: TBcd): TBcd;
    class operator Equal(const A, B: TBcd): Boolean;
    class operator NotEqual(const A, B: TBcd): Boolean;
    class operator GreaterThan(const A, B: TBcd): Boolean;
    class operator LessThan(const A, B: TBcd): Boolean;
    class operator GreaterThanOrEqual(const A, B: TBcd): Boolean;
    class operator LessThanOrEqual(const A, B: TBcd): Boolean;
  end;

C++

struct DECLSPEC_DRECORD TBcd
{
public:
    System::Byte Precision;
    System::Byte SignSpecialPlaces;
    System::StaticArray<System::Byte, 32> Fraction;
    static TBcd __fastcall _op_Implicit(const System::UnicodeString str);
    static TBcd __fastcall _op_Implicit(const double d);
    static TBcd __fastcall _op_Implicit(const int I);
    static TBcd __fastcall _op_Addition(const TBcd &A, const TBcd &B);
    static TBcd __fastcall _op_Subtraction(const TBcd &A, const TBcd &B);
    static TBcd __fastcall _op_Multiply(const TBcd &A, const TBcd &B);
    static TBcd __fastcall _op_Division(const TBcd &A, const TBcd &B);
    static TBcd __fastcall _op_UnaryNegation(const TBcd &A);
    static bool __fastcall _op_Equality(const TBcd &A, const TBcd &B);
    static bool __fastcall _op_Inequality(const TBcd &A, const TBcd &B);
    static bool __fastcall _op_GreaterThan(const TBcd &A, const TBcd &B);
    static bool __fastcall _op_LessThan(const TBcd &A, const TBcd &B);
    static bool __fastcall _op_GreaterThanOrEqual(const TBcd &A, const TBcd &B);
    static bool __fastcall _op_LessThanOrEqual(const TBcd &A, const TBcd &B);
    TBcd& operator =(const System::UnicodeString str) { *this = TBcd::_op_Implicit(str); return *this; }
    TBcd& operator =(const double d) { *this = TBcd::_op_Implicit(d); return *this; }
    TBcd& operator =(const int I) { *this = TBcd::_op_Implicit(I); return *this; }
    friend TBcd operator +(const TBcd &A, const TBcd &B) { return TBcd::_op_Addition(A, B); }
    friend TBcd operator -(const TBcd &A, const TBcd &B) { return TBcd::_op_Subtraction(A, B); }
    friend TBcd operator *(const TBcd &A, const TBcd &B) { return TBcd::_op_Multiply(A, B); }
    friend TBcd operator /(const TBcd &A, const TBcd &B) { return TBcd::_op_Division(A, B); }
    TBcd operator -() { return TBcd::_op_UnaryNegation(*this); }
    friend bool operator ==(const TBcd &A, const TBcd &B) { return TBcd::_op_Equality(A, B); }
    friend bool operator !=(const TBcd &A, const TBcd &B) { return TBcd::_op_Inequality(A, B); }
    friend bool operator >(const TBcd &A, const TBcd &B) { return TBcd::_op_GreaterThan(A, B); }
    friend bool operator <(const TBcd &A, const TBcd &B) { return TBcd::_op_LessThan(A, B); }
    friend bool operator >=(const TBcd &A, const TBcd &B) { return TBcd::_op_GreaterThanOrEqual(A, B); }
    friend bool operator <=(const TBcd &A, const TBcd &B) { return TBcd::_op_LessThanOrEqual(A, B); }
};

プロパティ

種類 可視性 ソース ユニット
record
struct
public
Data.FmtBcd.pas
Data.FMTBcd.hpp
Data.FmtBcd Data.FmtBcd


説明

TBcd は、2進化10進数値を格納します。

TBcd は、2進化10進数値を表します。以下のフィールドが含まれます。

フィールド 内容

精度

値を 10 進数で表現したときの桁数。

SignSpecialPlaces

  • 符号ビット(0 なら正、それ以外の値なら負)。
  • 特殊ビット(ゼロ以外は値が空白であることを示します)
  • 小数点以下の桁数(0 からの精度)

Fraction

BCD ニブルの配列。バイトごとに 00 から 99 までの数を表し、上位ニブルが先にきます。 最初の Precision ニブルしか使用しません。

Data.FmtBcd.VarFMTBcdCreate 関数を使用して、TBcd 値を表す Variant を作成します。実際、TBcd 値を操作する最も簡単な方法は、それらの Variant を作成し、その Variant 型で提供されている組み込み演算子を使用することです。

関連項目