From 94ffde2ce6e3c4980d7754052c577365579db6fa Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 1 May 2008 14:20:15 +0000 Subject: * bignum.c (rb_big_divide): return an integer for idiv. [ruby-dev:34553] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ bignum.c | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 453226880..e5dbce752 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu May 1 23:20:12 2008 Nobuyoshi Nakada + + * bignum.c (rb_big_divide): return an integer for idiv. + [ruby-dev:34553] + Thu May 1 20:47:30 2008 Yukihiro Matsumoto * hash.c (rb_hash_s_create): should access converted hash value. diff --git a/bignum.c b/bignum.c index 8d95877e1..f38e0774e 100644 --- a/bignum.c +++ b/bignum.c @@ -1815,7 +1815,15 @@ rb_big_divide(VALUE x, VALUE y, ID op) break; case T_FLOAT: - return DOUBLE2NUM(rb_big2dbl(x) / RFLOAT_VALUE(y)); + { + double div = rb_big2dbl(x) / RFLOAT_VALUE(y); + if (op == '/') { + return DOUBLE2NUM(div); + } + else { + return LONG2NUM((long)div); + } + } default: return rb_num_coerce_bin(x, y, op); -- cgit