tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
423
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Dec 2001
    Ort
    Raum Darmstadt
    Beiträge
    214
    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
     
    Eine Nacht ohne Disco ist wie eine Nacht ohne Frauen

    www.discoguide.de

  2. #2
    methodus methodus ist offline Mitglied Platin
    Registriert seit
    Mar 2002
    Ort
    Leipzig
    Beiträge
    543
    php.net: round($int,50);

    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
     
    Empirismus, die lieblingsmethode aller mir bekannter Programmierer :]

  3. #3
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    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.
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  4. #4
    methodus methodus ist offline Mitglied Platin
    Registriert seit
    Mar 2002
    Ort
    Leipzig
    Beiträge
    543
    sorry asph, wer zuerst kommt malt zuerst =)
     
    Empirismus, die lieblingsmethode aller mir bekannter Programmierer :]

  5. #5
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    wer zuerst kommt malt zuerst
    stimmt. ---> http://tutorials.de/showthread.php?threadid=20276

    hat auch nur so lange gedauert, weil ich das zur sicherheit nochmal nachgerechnet hab.
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  6. #6
    methodus methodus ist offline Mitglied Platin
    Registriert seit
    Mar 2002
    Ort
    Leipzig
    Beiträge
    543
    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.
     
    Empirismus, die lieblingsmethode aller mir bekannter Programmierer :]

  7. #7
    Registriert seit
    Dec 2001
    Ort
    Raum Darmstadt
    Beiträge
    214
    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
     
    Eine Nacht ohne Disco ist wie eine Nacht ohne Frauen

    www.discoguide.de

  8. #8
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    nochmal zur erklärung:

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

    2. du prüfst, wieviele stellen deine zahl hat, und bestimmst danach dein intervall:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    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 :
    1
    
    $ergebnis = floor($i / $intervall) * 50;

    da gibt's eigentlich nichts zu verstehen, das hat ja noch nichtmal wirklich was mit php zu tun...
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  9. #9
    methodus methodus ist offline Mitglied Platin
    Registriert seit
    Mar 2002
    Ort
    Leipzig
    Beiträge
    543
    FEHLER AAAAAAAAH FEHLER******! =)

    $ergebnis = floor($i / $intervall) * 50;
    das muss

    $ergebnis = floor($i / $intervall) * $intervall;

    heißen
     
    Empirismus, die lieblingsmethode aller mir bekannter Programmierer :]

  10. #10
    Registriert seit
    Nov 2001
    Ort
    Gießen
    Beiträge
    4.091
    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...
     
    "You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse

  11. #11
    Registriert seit
    Dec 2001
    Ort
    Raum Darmstadt
    Beiträge
    214
    konkret dankeschön ihr beiden.

    somit sollte das problem gelöst sein..

    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
    oh gott, wusste garnicht dass ich vor paar tagen schon mal nach den antworten geschaut habe scheiss alk....

    ciao
     
    Eine Nacht ohne Disco ist wie eine Nacht ohne Frauen

    www.discoguide.de

Ähnliche Themen

  1. Comic Figuren 3D 45° Schritten
    Von lammpee im Forum Sonstige Grafik-Programme
    Antworten: 2
    Letzter Beitrag: 09.07.10, 13:04
  2. Eigene Rundungslogik in 0,5 Schritten
    Von hispeedsurfer im Forum Java
    Antworten: 3
    Letzter Beitrag: 23.09.09, 12:54
  3. registrieren in 2 schritten
    Von Kurt Cobain im Forum PHP
    Antworten: 1
    Letzter Beitrag: 29.07.06, 16:01
  4. Zoomfunktion in 50%-Schritten
    Von Ossi im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 26.04.03, 19:51