Runden auf .05 Genauigkeit

Daaguru

Erfahrenes Mitglied
Hi zusammen,

suche grade eine Möglichkeit eine Zahl immer auf die nächste .05 zu runden.

Bsp: 100.01 -> 100.05
100.06 -> 100.10
100.16 -> 100.20
usw.


Danke im Vorraus!

~daA|guRu~
 
Funktioniert sehr wohl...

Hier der Testschnippsel
PHP:
<?php
$werte = array(100.01,100.02,100.03,100.04,100.05, 100.06,100.07,100.08,100.09,100.10,100.11,100.12,100.13,100.14,100.15, 100.16);
foreach($werte as $wert){
echo $wert . ' = ';
echo number_format((ceil(($wert*100)/5)*5)/100, 2, '.', '');
echo '<br>';
}
?>

Der code beinhaltet zusätzlich zu Atos' vorschlag noch das formatieren auf 2 Nachkommastellen falls das dein Problem sein sollte.

Hier hast du die ausgabe
PHP:
100.01 = 100.05
100.02 = 100.05
100.03 = 100.05
100.04 = 100.05
100.05 = 100.05
100.06 = 100.10
100.07 = 100.10
100.08 = 100.10
100.09 = 100.10
100.1 = 100.10
100.11 = 100.15
100.12 = 100.15
100.13 = 100.15
100.14 = 100.15
100.15 = 100.15
100.16 = 100.20
 
Was klappt denn genau nicht ? Hab es nochmal getestet und sieht nicht schlecht aus.
Hier der neue Quellcode:

PHP:
<?php
//100.01 -> 100.05 
$wert = 100.06;

function runde($wert){
	return (ceil(($wert*100)/5)*5)/100;
}

for ($i=1;$i < 100;$i++){
	$zahl = rand(1,10000)/100;
	echo $zahl." ".runde($zahl)."<br>\n";
}

?>

und hier ein Link zum testen:
http://www.sachti.de/helge/test.php
 
Zurück