summaryrefslogtreecommitdiff
path: root/get_str.c
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2000-05-12 08:07:02 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2000-05-12 08:07:02 +0000
commitc220bd0b2de5731e19ae899fe830ee5398b6dbf8 (patch)
tree1fb8257a0edf154c2301f894b096adfbbd5e17fc /get_str.c
parent8e3af5232d7f5ce88b68a212a3712306c3b21bda (diff)
downloadmpfr-c220bd0b2de5731e19ae899fe830ee5398b6dbf8.tar.gz
fixed pb with rounding of negative numbers
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@515 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'get_str.c')
-rw-r--r--get_str.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/get_str.c b/get_str.c
index 122fd3d1f..1c579e8b1 100644
--- a/get_str.c
+++ b/get_str.c
@@ -151,18 +151,18 @@ char *mpfr_get_str(str, expptr, base, n, op, rnd_mode)
ok=1;
rnd_mode=GMP_RNDN;
}
- ok = pow2 || mpfr_can_round(b, q-err, rnd_mode, rnd_mode, prec);
+ else ok = pow2 || mpfr_can_round(b, q-err, rnd_mode, rnd_mode, prec);
} while (ok==0 && (q+=BITS_PER_MP_LIMB) );
- if (ok) mpfr_round(b, rnd_mode, EXP(b));
-
if (neg)
switch (rnd_mode) {
case GMP_RNDU: rnd_mode=GMP_RNDZ; break;
case GMP_RNDD: rnd_mode=GMP_RNDU; break;
}
+ if (ok) mpfr_round(b, rnd_mode, EXP(b));
+
prec=EXP(b); /* may have changed due to rounding */
/* now the mantissa is the integer part of b */