Browse Source

round(-0.1) will now return 0 instead of -0

PHP-4.0.5
Hartmut Holzgraefe 27 years ago
parent
commit
33cb181af2
  1. 6
      ext/standard/math.c

6
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);
}

Loading…
Cancel
Save