AUFRUNDEoderABRUNDEN in x Schritten?

A5 Infoschlampe

Erfahrenes Mitglied
servus,

kleines problem ich konkret haben. nix wissen wie geht.
Also ich möchte eigentlich nur ganz "simpel" Auf und Abrunden von Zahlen - Allerdings möchte ich die Rundungsstelle bestimmen. Naja da ich nix sein gut in deutsches sprachen, kommt konkretes beispiel:

- Bei 3stelligen zahlen möchte ich immer um 50 abrunden. das heisst:

Bei 576 soll 550 erscheinen.
Bei 545 soll 500 erscheinen. nagut also jeweils abrunden.

- Bei 6stelligen zahlen möchte ich immer auf die letzte 10.000er stelle, also:

Bei 224.456 auf 220.000
Bei 456.887 auf 450.000
Bei 111.000 auf 110.000 usw.

Ich denke mit den beispielen ist verständlich oder?! ;) allerdings immer noch unverständlich für mich, wie ich dieses in die tat umsetze.

vielleicht könnt ihr mir helfen, thx schonma!

ciao
 
php.net: round($int,50); :p

zum zweiten würd ich sagen

floor($int / 10000)*10000

zu erklärung: erst die zahl durch 10.000 teilen damits mit dem abrunden hinhaut und dann zurückmultiplizieren
 
bei dreistelligen zahlen teilst du einfach durch 50, rundest mit floor ab, und multiplizierst wieder mit 50.
bei sechsstelligen genauso, nur halt statt 50 mit 10000.

// zu spät. grr.. heut ist nicht mein tag. :(
 
mir fällt grad ein, round arbeitet ja nach den normalen rundungsregeln also ist round(546,50) nicht 500 sondern 550

da es über 525 liegt rundet er auf, nicht ab...

also besser die prcedure wie mit den 10.000

floor($int / 50)*50;

das klappt.
 
sehr gut das ihr für einen "laien" so verständlich schreibt und alles erklärt ;-)

trotzdem thx, wenn ich wieder nüchtern bin werd ichs wohl raffen :rolleyes:
 
nochmal zur erklärung:

1. du nimmst die zahl, die du runden willst:
Code:
$i = 576;

2. du prüfst, wieviele stellen deine zahl hat, und bestimmst danach dein intervall:
Code:
if (($i < 1000) && ($i > 99))
{
    $intervall = 50;
}
else if (($i < 1000000) && ($i > 99999))
{
    $intervall = 10000;
}

2. du teilst die zahl durch dein intervall (50 oder 10000)
3. du schneidest die nachkommazahlen ab
4. du multiplizierst deine zahl wieder mit deinem intervall
Code:
$ergebnis = floor($i / $intervall) * 50;

da gibt's eigentlich nichts zu verstehen, das hat ja noch nichtmal wirklich was mit php zu tun... :rolleyes:
 
hm ja. kommt schon mal vor... ich "programmier" einfach zu viel in vb... :(

btw: mit einem einzigen ausrufezeichen und ohne caps lock hätte ich das auch eingesehen... :rolleyes:
 
Zurück