PHP Buchhalterisch / Kaufmännisch Rappen runden

Lesezeit: 0 Minuten

Da es in der Schweiz in der Regel immer nur 5 – Rappen Schritte gibt (keine 1 – Rappen Schritte), muss man für Schweizer Anwendungen oftmals den Endbetrag sauber auf 5 Rappen genau runden. Dies gelingt ganz einfach mit den folgenden Zeilen:

$a = 1.12;  // Betrag in CHF
$tmp = (100*round($a, 2)) % 5;
if ($tmp == 0){
$chf = $a;
}else if ($tmp <= 2){
$chf = ($a - $tmp/100);
}else{
$chf = ($a + (5-$tmp)/100);
}
$rated = number_format((round(20*$chf))/20,2);
echo $rated;

coop@home – Test
Webperlen gesucht

Kommentare

kim88

Das hätt ich dir gleich sagen können … ^^

tom

Danke für den geistreichen Kommentar ;-). Es ist ja auch nicht so, dass ich es nicht wusste, sondern mehr für die Nachwelt festhalten wollte 😛 immerhin wurde dieser Post via Google nach der Veröffentlichung bereits 57 mal angeschaut…
Grüsse, tom

kim88

Rofl? echt? ^^ ich bin gernne Geistreich 😀 liegt wohl an meinem Bierkonsum oO

tom

jup, echt. mittlerweile sinds 215 unique visitors ;-). mensch ich hab dir schon immer gsagt du sollst immer nur ein fass bier auf einmal trinken. das genügt! 😛

Nico

Oder als Kurzvariante und Funktion:

private function roundToNearest($value)
{
return round(($value + 0.000001) * 20) / 20;
}

Sebastian Schrepfer

oder ganz einfach so:
$value = 2.12;
$rounded_value = round(2 * $value, 1) / 2;

Schreibe einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.