mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
int decimal_is_zero(decimal *from);
This commit is contained in:
@ -51,13 +51,7 @@ int decimal_mul(decimal *from1, decimal *from2, decimal *to);
|
||||
int decimal_div(decimal *from1, decimal *from2, decimal *to, int scale_incr);
|
||||
int decimal_mod(decimal *from1, decimal *from2, decimal *to);
|
||||
int decimal_round(decimal *from, decimal *to, int new_scale, decimal_round_mode mode);
|
||||
|
||||
/*
|
||||
the following works only on special "zero" decimal, not on any
|
||||
decimal that happen to evaluate to zero
|
||||
*/
|
||||
|
||||
#define decimal_is_zero(dec) ((dec)->intg1==1 && (dec)->frac1==0 && (dec)->buf[0]==0)
|
||||
int decimal_is_zero(decimal *from);
|
||||
|
||||
/* set a decimal to zero */
|
||||
|
||||
|
@ -1240,6 +1240,16 @@ int decimal_cmp(decimal *from1, decimal *from2)
|
||||
return from1->sign > from2->sign ? -1 : 1;
|
||||
}
|
||||
|
||||
int decimal_is_zero(decimal *from)
|
||||
{
|
||||
dec1 *buf1=from->buf,
|
||||
*end=buf1+ROUND_UP(from->intg)+ROUND_UP(from->frac);
|
||||
while (buf1 < end)
|
||||
if (*buf1++)
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
multiply two decimals
|
||||
|
||||
|
Reference in New Issue
Block a user