Rechenergenisse falsch bzw. ungenau

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Rechenergenisse falsch bzw. ungenau

    Rechenergebnisse ungenau bzw. weichen stark ab. Dies hat nichts mit den Nachkommastellen zu tun. Nur die Ergebnisse von

    $ergebnis3
    $ergebnis4
    $ergebnis5

    weichen stark ab bzw. sind falsch

    Kann mir jemand sagen woran der Fehler liegt?

    PHP Code:
    <?php
    if (!empty($_POST["submit"]))
    {
      
    $_zahl1 $_POST["zahl1"];
      
    $_zahl2 $_POST["zahl2"];
      
    $_zahl3 $_POST["zahl3"];  
      

        {
            
    $ergebnis pow($_zahl1,2)*(acos(1-$_zahl2/$_zahl1))-sqrt(2*$_zahl1*$_zahl2-pow($_zahl2,2))*($_zahl1-$_zahl2);
            
    $ergebnis number_format ($ergebnis,2","".");
         echo 
    $ergebnis." &nbsp  cm² ist die Fläche des Kreisabschnitts &nbsp &nbsp $i &nbsp &nbsp  <br />";
         
            
    $ergebnis2 $ergebnis*$_zahl3;
            
    $ergebnis2 number_format ($ergebnis2,2","".");
         echo 
    $ergebnis2." &nbsp  Liter pro Sekunde &nbsp &nbsp $i &nbsp &nbsp  <br />";

            
    $ergebnis3 $ergebnis2*60;
            
    $ergebnis3 number_format ($ergebnis3,2","".");
         echo 
    $ergebnis3." &nbsp  Liter pro Minute &nbsp &nbsp $i &nbsp &nbsp  <br />";

            
    $ergebnis4 $ergebnis2*3600;
            
    $ergebnis4 number_format ($ergebnis4,2","".");
         echo 
    $ergebnis4." &nbsp  Liter pro Stunde &nbsp &nbsp $i &nbsp &nbsp  <br />";

            
    $ergebnis5 $ergebnis2*3600*24;
            
    $ergebnis5 number_format ($ergebnis5,2","".");
         echo 
    $ergebnis5." &nbsp  Liter pro Tag &nbsp &nbsp $i &nbsp &nbsp  <br />";
          
        }
      }

    ?>

  • #2
    PHP: number_format - Manual
    PHP: pow - Manual

    In meinen Augen beides falsch angewendet....

    Comment


    • #3
      Mir geht es jetzt nur um die Rechenergebnisse, nicht um die übersichtlichere Schreibweise.


      Originally posted by medium22 View Post
      PHP: number_format - Manual
      PHP: pow - Manual

      In meinen Augen beides falsch angewendet....

      Comment


      • #4
        Originally posted by Rudi-Ratloss View Post
        Dies hat nichts mit den Nachkommastellen zu tun.
        Um genau zu sein doch.

        Natürlich bekommst du nicht das Ergebnis, dass du willst. Das hat auch einen einfachen Grund: Du formatierst deine Ausgabe so um, dass PHP dein Tausendertrennzeichen als Dezimaltrennzeichen verwendet. Wenn du weiter mit den Werten rechnen willst, solltest du eine unformatierte Variante verwenden.

        Darüberhinaus: Du solltest bei jeder Benutzung von pow und dynamischen (vermutlich sogar noch Benutzerdefinierten) Werten prüfen, ob eine Berechnung überhaupt durchgeführt wurde!
        [FONT="Helvetica"]twitter.com/unset[/FONT]

        Shitstorm Podcast – Wöchentliches Auskotzen

        Comment


        • #5
          Das hat heirmit zu tun, wie muss ich das verändern?

          PHP Code:
          $ergebnis number_format ($ergebnis,2",""."); 

          Originally posted by unset View Post
          Um genau zu sein doch.

          Natürlich bekommst du nicht das Ergebnis, dass du willst. Das hat auch einen einfachen Grund: Du formatierst deine Ausgabe so um, dass PHP dein Tausendertrennzeichen als Dezimaltrennzeichen verwendet. Wenn du weiter mit den Werten rechnen willst, solltest du eine unformatierte Variante verwenden.

          Darüberhinaus: Du solltest bei jeder Benutzung von pow und dynamischen (vermutlich sogar noch Benutzerdefinierten) Werten prüfen, ob eine Berechnung überhaupt durchgeführt wurde!

          Comment


          • #6
            Am besten schreibst du die Ausgabe in eine andere Variable, wenn du weiter mit dem Wert rechnen willst. Wie das geht, solltest du ja wissen!
            [FONT="Helvetica"]twitter.com/unset[/FONT]

            Shitstorm Podcast – Wöchentliches Auskotzen

            Comment


            • #7
              Weis ich leider nicht, brauche dazu hilfe

              Originally posted by unset View Post
              Am besten schreibst du die Ausgabe in eine andere Variable, wenn du weiter mit dem Wert rechnen willst. Wie das geht, solltest du ja wissen!

              Comment


              • #8
                Du weißt wie man Variablen Werte zuweist. Mach das doch einfach, wo ist das Problem?!
                [FONT="Helvetica"]twitter.com/unset[/FONT]

                Shitstorm Podcast – Wöchentliches Auskotzen

                Comment


                • #9
                  Danke für deine Hilfe weis aber nicht was du meisnt.
                  Kannst du den PHP Code mal hier Posten damit ich das endlich kapiere

                  Originally posted by unset View Post
                  Du weißt wie man Variablen Werte zuweist. Mach das doch einfach, wo ist das Problem?!

                  Comment


                  • #10
                    Er meint damit nix anderes als:

                    PHP Code:
                    $var_fuer_spaetere_berechnung $ergebnis
                    und danach erst:

                    PHP Code:
                    $ergebnis number_format ($ergebnis,2",""."); 

                    Comment


                    • #11
                      Warum nicht number_format() erst bei der Ausgabe ausführen? IMHO hat das bei der Verarbeitung nichts zu suchen, sondern gehört zur Ausgabe.

                      Comment


                      • #12
                        Ich versuch noch ein mal dann geb ich es auf
                        Wer kann mir unten stehende PHP Gode rcihtig schreiben das er funktioniert

                        PHP Code:
                        <?php
                        if (!empty($_POST["submit"]))
                        {
                          
                        $r $_POST["r"];
                          
                        $h $_POST["h"];

                            {

                                 
                        $ergebnis r*h;
                                 
                        $ergebnis number_format ($ergebnis,2","".");
                            echo 
                        $ergebnis." &nbsp  cm² ist die Fläche des Kreisabschnitts &nbsp &nbsp $i &nbsp &nbsp  <br />";

                            }
                          }

                        ?>

                        Originally posted by h3ll View Post
                        Warum nicht number_format() erst bei der Ausgabe ausführen? IMHO hat das bei der Verarbeitung nichts zu suchen, sondern gehört zur Ausgabe.

                        Comment


                        • #13
                          In wievielen Threads willst du noch um Code betteln? Was versprichst du dir davon? Vom Kopieren lernst du es nicht. Ratschläge beherzigst du nicht. *close*
                          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                          Super, danke!
                          [/COLOR]

                          Comment

                          Working...
                          X