Browse Source

Additional fix for bug #52550 & fix test & warning from previous fixes

experimental/with_scalar_types
Ilia Alshanetsky 16 years ago
parent
commit
d9af17b839
  1. 8
      ext/standard/math.c
  2. 6
      ext/standard/tests/math/log_variation2.phpt

8
ext/standard/math.c

@ -29,6 +29,8 @@
#include <float.h>
#include <stdlib.h>
#include "basic_functions.h"
/* {{{ php_intlog10abs
Returns floor(log10(fabs(val))), uses fast binary search */
static inline int php_intlog10abs(double value) {
@ -127,7 +129,11 @@ PHPAPI double _php_math_round(double value, int places, int mode) {
double tmp_value;
int precision_places;
precision_places = 14 - php_intlog10abs(value);
if ((precision_places = php_intlog10abs(value)) > 0) {
precision_places = 14 - php_intlog10abs(value);
} else {
precision_places = 14;
}
f1 = php_intpow10(abs(places));

6
ext/standard/tests/math/log_variation2.phpt

@ -94,7 +94,7 @@ Warning: log(): base must be greater than 0 in %s on line %d
bool(false)
-- Iteration 2 --
float(INF)
float(NAN)
-- Iteration 3 --
float(0.12145441273706)
@ -135,7 +135,7 @@ Warning: log(): base must be greater than 0 in %s on line %d
bool(false)
-- Iteration 13 --
float(INF)
float(NAN)
-- Iteration 14 --
@ -143,7 +143,7 @@ Warning: log(): base must be greater than 0 in %s on line %d
bool(false)
-- Iteration 15 --
float(INF)
float(NAN)
-- Iteration 16 --

Loading…
Cancel
Save