mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +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_div(decimal *from1, decimal *from2, decimal *to, int scale_incr);
|
||||||
int decimal_mod(decimal *from1, decimal *from2, decimal *to);
|
int decimal_mod(decimal *from1, decimal *from2, decimal *to);
|
||||||
int decimal_round(decimal *from, decimal *to, int new_scale, decimal_round_mode mode);
|
int decimal_round(decimal *from, decimal *to, int new_scale, decimal_round_mode mode);
|
||||||
|
int decimal_is_zero(decimal *from);
|
||||||
/*
|
|
||||||
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)
|
|
||||||
|
|
||||||
/* set a decimal to zero */
|
/* set a decimal to zero */
|
||||||
|
|
||||||
|
@ -1240,6 +1240,16 @@ int decimal_cmp(decimal *from1, decimal *from2)
|
|||||||
return from1->sign > from2->sign ? -1 : 1;
|
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
|
multiply two decimals
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user