From 33cb181af2051ba3aa50e1cabe0575b32672ce44 Mon Sep 17 00:00:00 2001 From: Hartmut Holzgraefe Date: Wed, 1 Mar 2000 19:36:37 +0000 Subject: [PATCH] round(-0.1) will now return 0 instead of -0 --- ext/standard/math.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ext/standard/math.c b/ext/standard/math.c index 73c7f6dc58..0cc81dda61 100644 --- a/ext/standard/math.c +++ b/ext/standard/math.c @@ -101,6 +101,7 @@ PHP_FUNCTION(floor) { /* }}} */ /* {{{ proto int round(double number) + Returns the rounded value of the number */ #ifndef HAVE_RINT @@ -128,7 +129,10 @@ PHP_FUNCTION(round) convert_scalar_to_number_ex(value); if ((*value)->type == IS_DOUBLE) { - RETURN_DOUBLE(rint((*value)->value.dval)); + double d; + d=rint((*value)->value.dval); + if(d==0.0) d=0.0; /* workaround for rint() returning -0 instead of 0 */ + RETURN_DOUBLE(d); } else if ((*value)->type == IS_LONG) { RETURN_DOUBLE((double)(*value)->value.lval); } -- 2.40.0