From de67c321fec654c58be06c6b1b79084db286f9f9 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Tue, 1 May 2012 23:05:27 +0900 Subject: remove round(3) to avoid -std=c99 --- src/numeric.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/numeric.c b/src/numeric.c index bf255f973..d5475bc8e 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -102,13 +102,30 @@ const unsigned char mrb_nan[] = "\x7f\xc0\x00\x00"; #endif #ifdef MRB_USE_FLOAT -#define round(f) roundf(f) #define floor(f) floorf(f) #define ceil(f) ceilf(f) #define floor(f) floorf(f) #define fmod(x,y) fmodf(x,y) #endif +static mrb_float +mrb_round(mrb_float x) +{ + mrb_float f; + + if (x > 0.0) { + f = floor(x); + x = f + (x - f >= 0.5); + } + else if (x < 0.0) { + f = ceil(x); + x = f - (f - x >= 0.5); + } + return x; +} + +#define round(x) mrb_round(x) + void mrb_cmperr(mrb_state *mrb, mrb_value x, mrb_value y); void -- cgit v1.2.3