An dieser Stelle möchte ich ausnahmsweise mal keinen längeren Artikel veröffentlichen, sondern nur einen kleinen Beitrag der vielleicht für manche nützlich ist.
Für verschiedene Projekte benötigte ich die Funktion “schöne” Preise zu erzeugen. Das heißt zum Beispiel aus einem gegebenen Einkaufspreis einen Verkaufspreis zu berechnen, der aber nicht 12,32 Euro oder ähnlich lauten sollte.
Folgende Funktion ist dabei entstanden:
function round_to($number, $step = 1, $sub = 0) {
$number += $sub; // damit auch richtig gerundet wird
if($step == 0 || $step == 1) return round($number) - $sub;
return (round($number / $step) * $step) - $sub;
}
Mit dieser Hilfsfunktion lassen sich Zahlen auf (fast) beliebige schöne Summen runden.
Beispiel:
round_to(12.34, 0.5, 0.01) ergibt 12,49 (rundet auf den nächsten 0.5er Schritt und zieht 0.01 ab)
round_to(12.34, 5, 0.01) ergibt 9,99 (rundet auf den nächsten 5er Schritt und zieht 0.01 ab)
round_to(10.7, 2) ergibt 10.0 (rundet auf die nächste gerade Zahl)
Natürlich sollte man für kleinere Zahlen auch andere Rundungen verwenden als für größere. Also zum Beispiel eine zusätzliche IF-Abfrage:
$x = irgendeinezahl; // zum beispiel einkaufspreis $a = $x * 1.2; // 20% Aufschlag sind ungefähr gewünscht if($a < 5) $a = $a; // nichts tun elseif($a < 10) $a = round_to($a, 0.5, 0.01); elseif($a < 50) $a = round_to($a, 1, 0.01); elseif($a < 150) $a = round_to($a, 5, 0.01); else $a = round_to($a, 10, 0.10);
In diesem Beispiel würde der Aufruf für den Einkaufspreis 1,- zum Beispiel 1,20 ergeben, für 11,- würden sich 12,99 (11 * 1,2 = 13,20) ergeben und für 243,34 würden 289,90 entstehen (243,34 * 1,2 = 292,01).
Nach diesen Begriffen suchten die Benutzer:
- php runden auf 0 5
- php preise runden
- php runden mit 0
- php aufrunden auf 20er schritte
- php zahlen auf 0 5 aufrunden
- php runde auf alle 10
- php runde auf alle 10
- php zahl abrunden auf 10er schritt
- preis runde zahlen
- php werte runden
- php auf 0 01 runde
- php runden in fünfer schritt
- php runden auf 99
- welche zahlen ergeben gerundet 99 9
- spezielle werte a b
- php preis runden
JAN



