Formel problem

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

  • #16
    Jetzt kommt keine Fehlermeldung jedoch bricht der bei dem Wert 200 also die Zeile = if($ergebnis > 200) {break;} nicht ab.
    So sieht die Anzeige aus:
    27,23 Euro 1 Jahr
    28,32 Euro 2 Jahr
    29,45 Euro 3 Jahr
    30,63 Euro 4 Jahr
    31,85 Euro 5 Jahr
    33,13 Euro 6 Jahr
    34,45 Euro 7 Jahr
    35,83 Euro 8 Jahr
    37,26 Euro 9 Jahr
    38,75 Euro 10 Jahr
    40,30 Euro 11 Jahr
    41,91 Euro 12 Jahr
    403,00


    PHP-Code:
    $summe=0;
    for (
    $i 1$i <= 12$i++)
     {
        if (
    $std >  1)
        {
          
    $ergebnis =  (pow((($steig/100)+1),$i)*$preis) * (($std*$tage*$alt)-($std*$tage*$neu))/1000;
          if(
    $ergebnis 200) {break;}
          
    $ergebnis number_format ($ergebnis,2","".");
          
    $summe+=$ergebnis;
          echo 
    $ergebnis." Euro &nbsp &nbsp $i &nbsp &nbsp Jahr  <br />";
        }
      }

    echo 
    number_format ($summe,2","".");
    ?> 

    Kommentar


    • #17
      Problem behoben funktioniert jetzt.
      Jedoch die Summe wird nicht richtig berechnet.
      Anzeige sieht so aus:
      27,23 Euro 1 Jahr
      28,32 Euro 2 Jahr
      29,45 Euro 3 Jahr
      30,63 Euro 4 Jahr
      31,85 Euro 5 Jahr
      33,13 Euro 6 Jahr
      34,45 Euro 7 Jahr
      212,00 Die Richtige Summe muss 215,06 ergeben

      Hier ist der aktuelle Code:
      PHP-Code:
      $summe=0;
      for (
      $i 1$i <= 12$i++)
       {
          if (
      $std >  1)
          {
            
      $ergebnis =  (pow((($steig/100)+1),$i)*$preis) * (($std*$tage*$alt)-($std*$tage*$neu))/1000;
            if(
      $summe 200) {break;}
            
      $ergebnis number_format ($ergebnis,2","".");
            
      $summe+=$ergebnis;
            echo 
      $ergebnis." Euro &nbsp &nbsp $i &nbsp &nbsp Jahr  <br />";
          }
        }

      echo 
      number_format ($summe,2","".");
      ?> 

      Kommentar


      • #18
        number_format() ist eher für die Ansicht in einer Tabelle geeignet als damit mathematische Berechnungen anzustellen.

        Dein Fehler in der (falschen) Summenbildung liegt hier:
        PHP-Code:
              $ergebnis number_format ($ergebnis,2","".");
              
        $summe+=$ergebnis
        Das hat dir Guenni ja bereits gesagt:
        deshalb hab' ja auch geschrieben, zu versuchen, die Summe zu bilden,

        bevor das Ergebnis formatiert wird. Vielleicht passieren da ja Rundungsfehler.
        @guenni: klaro sind dann Rundungsfehler nicht zu vermeiden... siehe dieses Beispiel zur Verdeutlichung:

        PHP-Code:
        $betrag 100;
        $jahre  20;
        $zins   5;
        $zins   $zins 100;

        $sum $sum1 0;
        //--als Tabelle ausgeben zur besseren Übersicht
        echo '<table border="1" cellspacing="2" cellpadding="10">';
        echo 
        '<tr><td>"Jahr"</td><td>"Betrag intern"</td><td>"Betrag formatiert"</td><td>"Summe intern"</td><td>"Summe mit <br />formatierten Betr&auml;gen</td></tr>';
            for (
        $i 0$i $jahre$i++) {
                
        $betrag $betrag $betrag $zins;
                
        $sum += $betrag;
                
        $bg1 number_format($betrag,2","".");
                
        $sum1 += $bg1;
                echo 
        '<tr><td>'.$i.'</td><td>'.$betrag.'</td><td>'.$bg1.'</td><td>'.$sum.'</td><td>'.number_format($sum1,2,","".").'</td></tr>';

                }
        echo 
        '</table>'
        @Tastatur: Richtig bzw. besser ist das so:
        PHP-Code:
        $summe=0;
        for (
        $i 1$i <= 12$i++)
         {
            if(
        $summe 200) {break;}
            if (
        $std >  1)
            {
              
        $ergebnis =  (pow((($steig/100)+1),$i)*$preis) * (($std*$tage*$alt)-($std*$tage*$neu))/1000;
              
        $summe+=$ergebnis;
              echo 
        number_format ($ergebnis,2","".")." Euro &nbsp; &nbsp; $i &nbsp; &nbsp; Jahr  <br />";
            }
          }

        echo 
        number_format ($summe,2",""."); 
        Zuletzt geändert von raiguen; 02.04.2013, 16:23. Grund: Beispiel hinzugefügt

        Kommentar

        Lädt...
        X