PHP_ROUND_HALF_DOWN
redondeará el medio - es decir, la parte 0.005
.
si tiene 61.535
, utilizando PHP_ROUND_HALF_DOWN
le conseguirá 61.53
- en lugar de la 61.54
que debería haber obtenido con habitual redondeo.
Basicall, .005
medio ha sido redondeado hacia abajo.
Pero 61.536
no es un medio: .006
es más que .005
; por lo que redondear ese valor da 61.54
.
En su caso, usted podría multiplicar el valor por 100, utilice la función floor(), y dividir el resultado por 100 - supongo que le daría lo que espera:
$value = 61.536;
$value_times_100 = $value * 100;
$value_times_100_floored = floor($value_times_100);
$value_floored = $value_times_100_floored/100;
var_dump($value_floored);
me da:
float(61.53)
Sí, te dije, será tonto: D – arma