Runden -> nur Wenn letzte Ziffer nicht 0

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Runden -> nur Wenn letzte Ziffer nicht 0

    Hallo,
    Die meisten werden sich jetzt an die Stirn klatschen, weil es schon paar threads zum Thema runde gibt!
    Mein Problem wird dort leider nicht gelöst!

    Also ich habe eine variable, diese sieht entweder so aus

    3,55

    oder so

    3,50

    Das entscheidende ist hier die letzte Zahl, ist es eine 0 oder ist eine ein Zahl von 1 bis 9!

    Wenn ich nun generell sage:

    PHP-Code:
    $kosten ceil($e_kosten_runden 10) / 10
    Dann rundet er mir immer schön auf, aber leider auch, wenn die Variable $e_kosten_runden schon eine Zahl ist, wo die letzte Ziffer eine 0 ist!
    Wenn die letzte Ziffer eine 0 ist, soll diese Zahl ihren Zusatand nciht verlieren.
    Bsp:

    3,01 --> 3,10
    3,65 --> 3,70
    3,40 --> 3,40
    3,60 --> 3,60
    3,15 --> 3,20

    Hoffe jemand kann mir da weiter helfen!

    Vielen Dank

    Gruß
    tine_

  • #2
    hm... und was stört dich daran

    Kommentar


    • #3
      ich weiß nicht mehr wie der elementzugriff funktioniert... versuch mal {} oder []

      PHP-Code:
      if($string{strlen($string)} != 0){ceil(...); } 

      Kommentar


      • #4
        PHP-Code:
        if ($kosten 0.1 != 0) { ceil(...); } 

        Kommentar


        • #5
          danke euch

          @ asp2php
          Was soll denn die Frage?

          Kommentar


          • #6
            Original geschrieben von tine_

            @ asp2php
            Was soll denn die Frage?
            ich meine, wenn 3,40 immer noch 3,40 bleibt, warum willst du was ändern?

            Kommentar


            • #7
              Original geschrieben von asp2php
              ich meine, wenn 3,40 immer noch 3,40 bleibt, warum willst du was ändern?
              ne, sie will ja nur etwas ändern wenn die zahl nicht 3,40 sonder z.b. 3,42 ist! so habe ich es zumindest verstanden
              Zuletzt geändert von magman; 10.02.2005, 10:16.

              Kommentar


              • #8
                richtig magman!
                Aber es funktioniert leider nicht!

                PHP-Code:
                if($e_kosten_rounden 0.1 != 0) != 0){
                            
                $e_kosten ceil($e_kosten_rounden 10) / 10;
                        } else {
                            
                $e_kosten $e_kosten_rounden;
                        } 
                beim debuggen ist $e_kosten_rounden 36,35 und er springt in den else Zweig! :/

                Kommentar


                • #9
                  Original geschrieben von tine_
                  richtig magman!
                  Aber es funktioniert leider nicht!

                  PHP-Code:
                  if($e_kosten_rounden 0.1 != 0) != 0){
                              
                  $e_kosten ceil($e_kosten_rounden 10) / 10;
                          } else {
                              
                  $e_kosten $e_kosten_rounden;
                          } 
                  beim debuggen ist $e_kosten_rounden 36,35 und er springt in den else Zweig! :/

                  müsste dein code nicht ein parse error ergeben ?

                  und php ist kein deutsches System, Komma ist nicht gleich Punkt
                  anders gesagt

                  3,65 != 3.65
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar


                  • #10
                    Re: Runden -&gt; nur Wenn letzte Ziffer nicht 0

                    PHP-Code:
                    $e_kosten_runden  3.4;
                    $kosten ceil($e_kosten_runden 10) / 10;
                    echo 
                    $kosten
                    wo bitte hat jetzt die zahl "ihren zustand verloren" ...?

                    du möchtest am runden überhaupt nichts ändern, weil das genau so funktioniert wie es soll.
                    vielleicht möchtest du aber aus der internen zwahl 3.4 bei der ausgabe wieder was auf zwei stellen hinterm komma aufgefülltes machen - ja, dann klatsche ich dir jetzt wirklich an die stirn, weil wir diese trivialfrage wirklich schon x-mal hatten.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      *an die stirn fass*

                      aua ...

                      also, ich bekomme als ergebnis meinetwegen 20.35
                      jetzt will ich es auf 20.40 aufrunden!
                      Funktioniert!
                      Jetzzt habe ich als Ergebnis 20.30
                      habe aber immernoch meine funktion, welche mir aufrundet!

                      PHP-Code:
                      $e_kosten ceil($e_kosten_rounden 10) / 10
                      ich brauche also eine prüfung welche prüft, ob die stellen hinter dem komma schon im 10er schritt sind--> xx,00, xx,10 xx,20 xx,30
                      oder ob diese eben mittendrin sind --> xx,13, xx,24, xx,49

                      Anderes kann ich mir keine lösung denken!

                      Kommentar


                      • #12
                        Original geschrieben von magman
                        ne, sie will ja nur etwas ändern wenn die zahl nicht 3,40 sonder z.b. 3,42 ist! so habe ich es zumindest verstanden
                        Und deswegen warum? Ist doch egal, da 3.4 bleibt nach der Umwandlung immer noch 3.4, außerdem mit der Extratour dauert ihr Script eben länger

                        Kommentar


                        • #13
                          du probierst jetzt bitte mal aus, was
                          PHP-Code:
                          $e_kosten_rounden 20.3;
                          $e_kosten ceil($e_kosten_rounden 10) / 10
                          echo 
                          $e_kosten
                          für ein ergebnis liefert, und postest dieses hier.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            ok, nach langem copy paste, debugg und so hier das ergebnis:
                            20.3
                            Die nächste Aufgabe an Dich:
                            Was kommt hier raus, bzw. sollte raus kommen!?


                            PHP-Code:
                            $kosten_material 12;
                            $e_verr 1.35;

                            $e_kosten $kosten_material $e_verr;
                            $e_kosten ceil($e_kosten 10) / 10;

                            echo 
                            $e_kosten

                            Kommentar


                            • #15
                              OK, da scheint PHP sich wohl auf grund interner rundungsfehler beim ceil() zu verrechnen, macht aus 162 eine 163 ...
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X