Ankündigung

Einklappen
Keine Ankündigung bisher.

float addieren

Einklappen

Neue Werbung 2019

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

  • float addieren

    Hallo zusammen,

    Kann mir jemand weiterhelfen warum PHP bei einer Addition die Nachkommastellen wegschmeißt?

    14.3037910461425781
    14.3037872314453125
    Summe: 28

    lg,
    Stefan

  • #2
    Code?

    Kommentar


    • #3
      Hallo,

      Bei den Zahlen handelt es sich um GPS Koordinaten, darum so viele Kommastellen. Die Daten kommen aus einer *.gpx Datei.

      Code ist nicht mehr als das:
      PHP-Code:
      $zahl1 "14.3037910461425781";
      $zahl2 "14.3037872314453125";
      echo 
      "Summe: " $zahl1+$zahl2

      Kommentar


      • #4
        Du addierst keine Zahlen, sondern Strings
        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

        Kommentar


        • #5
          Hallo,

          Sorry, die "" waren im Beispiel ein Versehen.
          Gelöst hat sichs gerade mit floatval($zahl1) + floatval($zahl2)

          lg,
          Stefan

          Kommentar


          • #6
            Dann sind zahl1 und zahl2 aber keine Fliesskommazahlen, denn dann gehts auch ohne:
            PHP-Code:
            $zahl1 14.3037910461425781;
            $zahl2 14.3037872314453125;
            echo 
            "Summe: " $zahl1 $zahl2;

            // Ausgabe: Summe: 28.607578277588 
            funktioniert bei mir einwandfrei!
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Hallo Stefan,

              ist dir die Gleitkomma-Problematik bekannt? Solltest du auf eine hohe Genauigkeit angewiesen sein, kannst du die Math-Library von PHP verwenden.

              http://www.php.net/manual/en/book.bc.php

              LG

              Kommentar


              • #8
                Zitat von StefanM_ Beitrag anzeigen
                Hallo,

                Bei den Zahlen handelt es sich um GPS Koordinaten, darum so viele Kommastellen. Die Daten kommen aus einer *.gpx Datei.

                Code ist nicht mehr als das:
                PHP-Code:
                $zahl1 "14.3037910461425781";
                $zahl2 "14.3037872314453125";
                echo 
                "Summe: " $zahl1+$zahl2
                Hier wird eine Genauigkeit vorgegaukelt, die real nicht existiert.
                In dezimaler Notation haben sich 6 Nachkommastellen in der Praxis als ausreichend erwiesen (entspricht einer Ungnauigkeit von ca 10cm , s. wiki.openstreetmap.org/).
                Da kannst du also getrost mit float (Genauigkeit ca. 14 Stellen) unter PHP arbeiten, ohne auf Math-Library o.ä. ausweichen zu müssen.

                LG jspit

                Kommentar


                • #9
                  Alternativ zu jspits Empfehlung: Nutze Binary Calculation und gebe deine Werte als Strings an. Bei [man]BCMath[/man] kannst du die benötigte Genauigkeit vorgeben, statt dich auf circa-Werte die Platform-bedingt sind zu verlassen. ( Was jetzt nicht deine Empfehlung abwerten soll, das ist schon richtig was du sagst @jspit )
                  [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                  Kommentar

                  Lädt...
                  X