20
20
{TRUNCATE=0, HALF_EVEN, HALF_UP, CEILING, FLOOR}
21
21
decimal_round_mode;
22
typedef int32_t decimal_digit_t;
22
typedef int32 decimal_digit_t;
24
24
typedef struct st_decimal_t {
25
25
int intg, frac, len;
27
27
decimal_digit_t *buf;
30
int internal_str2dec(char *from, decimal_t *to, char **end,
30
int internal_str2dec(const char *from, decimal_t *to, char **end,
32
32
int decimal2string(decimal_t *from, char *to, int *to_len,
33
33
int fixed_precision, int fixed_decimals,
35
35
int decimal2uint64_t(decimal_t *from, uint64_t *to);
36
36
int uint64_t2decimal(uint64_t from, decimal_t *to);
37
int decimal2int64_t(decimal_t *from, int64_t *to);
38
int int64_t2decimal(int64_t from, decimal_t *to);
37
int decimal2longlong(decimal_t *from, longlong *to);
38
int longlong2decimal(longlong from, decimal_t *to);
39
39
int decimal2double(decimal_t *from, double *to);
40
40
int double2decimal(double from, decimal_t *to);
41
41
int decimal_actual_fraction(decimal_t *from);
42
int decimal2bin(decimal_t *from, unsigned char *to, int precision, int scale);
43
int bin2decimal(const unsigned char *from, decimal_t *to, int precision, int scale);
42
int decimal2bin(decimal_t *from, uchar *to, int precision, int scale);
43
int bin2decimal(const uchar *from, decimal_t *to, int precision, int scale);
45
45
int decimal_size(int precision, int scale);
46
46
int decimal_bin_size(int precision, int scale);