aboutsummaryrefslogtreecommitdiffstats
path: root/rational.c
diff options
context:
space:
mode:
Diffstat (limited to 'rational.c')
-rw-r--r--rational.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/rational.c b/rational.c
index d9363a2e5f..72a323353d 100644
--- a/rational.c
+++ b/rational.c
@@ -1243,9 +1243,9 @@ static VALUE
nurat_truncate(VALUE self)
{
get_dat1(self);
- if (f_negative_p(dat->num))
- return f_negate(f_idiv(f_negate(dat->num), dat->den));
- return f_idiv(dat->num, dat->den);
+ if (INT_NEGATIVE_P(dat->num))
+ return rb_int_uminus(rb_int_idiv(rb_int_uminus(dat->num), dat->den));
+ return rb_int_idiv(dat->num, dat->den);
}
static VALUE