fix arithmetic overflow
Signed-off-by: Michael Moon <triffid.hunter@gmail.com>
This commit is contained in:
parent
ecc0d6e3ef
commit
19e3c24835
|
|
@ -60,10 +60,14 @@ int32_t decfloat_to_int(decfloat *df, int32_t multiplicand, int32_t denominator)
|
|||
e--;
|
||||
|
||||
// scale factors
|
||||
if (multiplicand != 1)
|
||||
r *= multiplicand;
|
||||
if (denominator != 1)
|
||||
r /= denominator;
|
||||
// if (multiplicand != 1)
|
||||
// r *= multiplicand;
|
||||
// if (denominator != 1)
|
||||
// r /= denominator;
|
||||
|
||||
int32_t rnew1 = r * (multiplicand / denominator)
|
||||
int32_t rnew2 = r * (multiplicand % denominator)
|
||||
r = rnew1 + rnew2;
|
||||
|
||||
// sign
|
||||
if (df->sign)
|
||||
|
|
|
|||
Loading…
Reference in New Issue