diff options
| author | Paul Eggert | 2018-09-22 08:59:06 -0700 |
|---|---|---|
| committer | Paul Eggert | 2018-09-22 09:01:26 -0700 |
| commit | 0b36041d2a528419982a19940573783ff318c0d4 (patch) | |
| tree | 0b66b534356f9e4ed7cb39601f6d29492cbea104 /src/data.c | |
| parent | 596ccc087c8f844f81b075da643e5c554a8de9d6 (diff) | |
| download | emacs-0b36041d2a528419982a19940573783ff318c0d4.tar.gz emacs-0b36041d2a528419982a19940573783ff318c0d4.zip | |
Round bignums consistently with other integers
* src/bignum.c (mpz_bufsize): New function.
(bignum_bufsize): Use it.
(mpz_get_d_rounded): New function.
(bignum_to_double): Use it.
* src/bignum.c (bignum_to_double):
* src/data.c (bignum_arith_driver):
When converting bignums to double, round instead of
truncating, to be consistent with what happens with fixnums.
* test/src/floatfns-tests.el (bignum-to-float): Test rounding.
Diffstat (limited to 'src/data.c')
| -rw-r--r-- | src/data.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/data.c b/src/data.c index cc080372d8b..750d494b83a 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -2921,7 +2921,7 @@ bignum_arith_driver (enum arithop code, ptrdiff_t nargs, Lisp_Object *args, | |||
| 2921 | CHECK_NUMBER_COERCE_MARKER (val); | 2921 | CHECK_NUMBER_COERCE_MARKER (val); |
| 2922 | if (FLOATP (val)) | 2922 | if (FLOATP (val)) |
| 2923 | return float_arith_driver (code, nargs, args, argnum, | 2923 | return float_arith_driver (code, nargs, args, argnum, |
| 2924 | mpz_get_d (*accum), val); | 2924 | mpz_get_d_rounded (*accum), val); |
| 2925 | } | 2925 | } |
| 2926 | } | 2926 | } |
| 2927 | 2927 | ||