Data.FmtBcd.TBcd

Object Pascal

```  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);
TBcd& __fastcall operator=(const System::UnicodeString str) { *this = TBcd::_op_Implicit(str); return *this; };
static TBcd __fastcall _op_Implicit(const double d);
TBcd& __fastcall operator=(const double d) { *this = TBcd::_op_Implicit(d); return *this; };
static TBcd __fastcall _op_Implicit(const int I);
TBcd& __fastcall operator=(const int I) { *this = TBcd::_op_Implicit(I); return *this; };
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);
};
```

Properties

Type Visibility Source Unit Parent
record
struct
public
Data.FmtBcd.pas
Data.FMTBcd.hpp
Data.FmtBcd Data.FmtBcd

Description

TBcd stores a binary coded decimal value.

TBcd represents a binary coded decimal value. It contains the following fields:

Field Contents

Precision

The number of digits in the decimal version of the value.

SignSpecialPlaces

The sign bit (0 is positive, any other value negative)

Fraction

An array of BCD nibbles, 00 to 99 per byte, high nibble first. Only the first Precision nibbles are used.

You can create a Variant that represents a TBcd value using the Data.FmtBcd.VarFMTBcdCreate function. In fact, the easiest way to manipulate TBcd values is to create Variants for them and use the built-in operators provided by the Variant type.