From 631dde2572eb78cbf09d73d23a43852ccb199bd1 Mon Sep 17 00:00:00 2001 From: nobu Date: Fri, 25 Nov 2016 06:28:00 +0000 Subject: round-down * numeric.c (round_half_down, int_round_half_down): support round-down mode. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- internal.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'internal.h') diff --git a/internal.h b/internal.h index ab69abb95f..3a4fbd54c5 100644 --- a/internal.h +++ b/internal.h @@ -1149,16 +1149,17 @@ void Init_newline(void); enum ruby_num_rounding_mode { RUBY_NUM_ROUND_HALF_UP, RUBY_NUM_ROUND_HALF_EVEN, + RUBY_NUM_ROUND_HALF_DOWN, RUBY_NUM_ROUND_DEFAULT = ROUND_DEFAULT }; -#define ROUND_TO(mode, even, up) \ +#define ROUND_TO(mode, even, up, down) \ ((mode) == RUBY_NUM_ROUND_HALF_EVEN ? even : \ - up) + (mode) == RUBY_NUM_ROUND_HALF_UP ? up : down) #define ROUND_FUNC(mode, name) \ - ROUND_TO(mode, name##_half_even, name##_half_up) + ROUND_TO(mode, name##_half_even, name##_half_up, name##_half_down) #define ROUND_CALL(mode, name, args) \ ROUND_TO(mode, name##_half_even args, \ - name##_half_up args) + name##_half_up args, name##_half_down args) int rb_num_to_uint(VALUE val, unsigned int *ret); VALUE ruby_num_interval_step_size(VALUE from, VALUE to, VALUE step, int excl); -- cgit v1.2.3