Rechenergenisse falsch bzw. ungenau

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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....

    Kommentar


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


      Zitat von medium22 Beitrag anzeigen
      PHP: number_format - Manual
      PHP: pow - Manual

      In meinen Augen beides falsch angewendet....

      Kommentar


      • #4
        Zitat von Rudi-Ratloss Beitrag anzeigen
        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

        Kommentar


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

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

          Zitat von unset Beitrag anzeigen
          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!

          Kommentar


          • #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

            Kommentar


            • #7
              Weis ich leider nicht, brauche dazu hilfe

              Zitat von unset Beitrag anzeigen
              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!

              Kommentar


              • #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

                Kommentar


                • #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

                  Zitat von unset Beitrag anzeigen
                  Du weißt wie man Variablen Werte zuweist. Mach das doch einfach, wo ist das Problem?!

                  Kommentar


                  • #10
                    Er meint damit nix anderes als:

                    PHP-Code:
                    $var_fuer_spaetere_berechnung $ergebnis
                    und danach erst:

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

                    Kommentar


                    • #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.

                      Kommentar


                      • #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 />";

                            }
                          }

                        ?>

                        Zitat von h3ll Beitrag anzeigen
                        Warum nicht number_format() erst bei der Ausgabe ausführen? IMHO hat das bei der Verarbeitung nichts zu suchen, sondern gehört zur Ausgabe.

                        Kommentar


                        • #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]

                          Kommentar

                          Lädt...
                          X