PHP_ROUND_HALF_DOWN
wird die halb -- d.h. die 0.005
Teil.
wenn Sie 61.535
, mit PHP_ROUND_HALF_DOWN
erhalten Sie 61.53
-- anstelle der 61.54
sollten Sie erhalten haben mit übliche Rundung .
Grundsätzlich gilt, dass die .005
halb ist abgerundet worden.
Mais 61.536
ist keine halbe : .006
ist mehr als .005
; die Rundung dieses Wertes ergibt also 61.54
.
In Ihrem Fall könnten Sie den Wert mit 100 multiplizieren, die floor() Funktion und dividieren Sie das Ergebnis durch 100 - ich nehme an, dass Sie damit das erhalten, was Sie erwarten:
$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);
Das gibt mir :
float(61.53)