The decimal structure
Use the decimal data type to declare host variables for database values of type DECIMAL.
#define DECSIZE 16
struct decimal
{
short dec_exp;
short dec_pos;
short dec_ndgts;
char dec_dgts[DECSIZE];
};
typedef struct decimal dec_t;
EXEC SQL include decimal;
Field | Description |
---|---|
dec_exp | The exponent of the normalized decimal type number. The normalized form of this number has the decimal point at the left of the left-most digit. This exponent represents the number of digit pairs to count from the left to position the decimal point (or as a power of 100 for the number of base-100 numbers). |
dec_pos | The sign of the decimal type number.
The dec_pos field can assume any one of the following three
values:
|
dec_ndgts | The number of digit pairs (number of base-100 significant digits) in the decimal type number. This value is also the number of entries in the dec_dgts array. |
dec_dgts[] | A character array that holds the significant digits
of the normalized decimal type number, assuming dec_dgts[0] ! =
0. Each byte in the array contains the next significant base-100 digit in the decimal type number, proceeding from dec_dgts[0] to dec_dgts[dec_ndgts]. |
Value | dec_exp | dec_pos | dec_ndgts | dec_dgts[] |
---|---|---|---|---|
-12345.6789 | 3 | 0 | 5 | dec_dgts[0] = 01 |
1234.567 | 2 | 1 | 4 | dec_dgts[0] = 12 |
-123.456 | 2 | 0 | 4 | dec_dgts[0] = 01 |
480 | 2 | 1 | 2 | dec_dgts[0] = 04 |
.152 | 0 | 1 | 2 | dec_dgts[0] = 15 |
-6 | 1 | 0 | 1 | dec_dgts[0] = 06 |
You can use the deccvasc demonstration program to experiment with how stores decimal numbers.