IsyChan: Mit PHP rechnen

0 44

Mit PHP rechnen

IsyChan
  • php
  1. 0
    Jörg Reinholz
    1. 0
      JürgenB
      • hochwissenschaftliches
      • php
      1. 0
        Tabellenkalk
    2. 0

      Zahleneingaben und PHP

      Jörg Reinholz
      1. 0
        IsyChan
        1. 0
          Matthias Apsel
          1. 0
            Jörg Reinholz
            1. 0
              IsyChan
              1. 2
                Jörg Reinholz
              2. 0
                Der Martin
              3. 0
                Matthias Apsel
              4. 0
                Orlok
                • zu diesem forum
            2. 0
              IsyChan
              1. 0
                Jörg Reinholz
                1. 0
                  IsyChan
                  1. 0
                    Jörg Reinholz
                2. 0
                  IsyChan
                  1. 0
                    IsyChan
                    1. 0
                      IsyChan
                      1. 0
                        Jörg Reinholz
                        1. 0
                          IsyChan
                          1. 0
                            Jörg Reinholz
                            1. 0
                              IsyChan
                  2. 0
                    Jörg Reinholz
          2. 0
            IsyChan
            1. 0
              Der Martin
              1. 0
                IsyChan
                1. 0
                  Der Martin
        2. 0
          Gunnar Bittersmann
          • mathematik
          1. 0
            Matthias Apsel
            1. 0
              Gunnar Bittersmann
              1. 0
                woodfighter
          2. 0
            IsyChan
            1. 2
              JürgenB
            2. 0
              Tabellenkalk
              1. 0
                IsyChan
            3. 0
              Gunnar Bittersmann
  2. 0
    IsyChan
    1. 0
      Tabellenkalk
    2. 1

      Danke für die Blumen

      Jörg Reinholz
  3. 0

    Notice: A non well formed numeric value encountered

    IsyChan
    1. 0
      Jörg Reinholz
    2. 0
      St33l

Hallo,

über ein Feld kann ich bestimmte %-Werte eintragen z.B. 19, 21.5 und 24

Um 19% müsste ich mit PHP diese Formel verwenden:

$feld1  = ''; if (isset($_POST['eingabe1'])) { $feld1 = $Preis*1.19 ; }

allerdings wird in das Feld 19, 21.5 oder 24 eingetragen. Wie kann ich das umwandeln, dass ich mit PHP rechnen kann? In $_POST['eingabe1'] steht der Wert der später hinten gegen die 1,19 getauscht wird.

  1. Moin!

    Schritt 1: Trimmen trim($str)
    Schritt 2: Komma durch Punkt ersetzen str_replace(',', '.', $str)
    Schritt 3: floatval($str)

    Zusammen:

    $float = floatval( str_replace( ',', '.', trim( $str ) ) );
    

    Jetzt noch prüfen, ob die Zahl Deinen Erwartungen entspricht, ggf. runden ...

    Jörg Reinholz

    1. Hallo,

      kann PHP keine Grundrechenarten?

      Gruß Jürgen

      1. Hallo,

        kann PHP keine Grundrechenarten?

        Klar kann es das

        Gruß
        Kalk

    2. Moin!

      Das Problem ist nicht wirklich abschließend zu lösen. Ich stelle einen Versuch zur Diskussion:

      <?php
      echo german_str_to_float('2 Euro', 2, 3), "\n";
      
      function german_str_to_float ($str, $min=false, $max=false) {
          $float = floatval( str_replace( ',', '.', trim( $str ) ) );
          if ( is_numeric($float) ) {
              if ( false !== $max ) {
                  if ( $min >= $max ) {
                      #$err='Ftal: Beim Funktionsaufruf von german_str_to_float wurde Minimum >= Maximum übergeben.';
                      #$errNr = $errNr + 1;
                      #errType = FATAL_ERROR
                      #DEIN_ERROR_HANDLER ($errStr, errType, $errNr)
                      return false;
                  } else {
                      if ( $float >= $min && $float <= $max ) {
                          return $float;
                      } else {
                          #$err='Fatal: Beim Funktionsaufruf von german_str_to_float wurde groesseres Minimum als Maximum übergeben.';
                          #$errNr = $errNr + 2;
                          #errType = FATAL_ERROR
                          #DEIN_ERROR_HANDLER ($errStr, errType, $errNr)
                          return false;
                      }
                  }
              }
              return $float;
          } else {
              return false;
          }
      }
      
      

      Jörg Reinholz

      1. Hallo,

        Das Problem ist nicht wirklich abschließend zu lösen. Ich stelle einen Versuch zur Diskussion:

        warum nicht? Meine Frage ist eigentlich GANZ einfach. Wie komme ich wenn ein User 19 oder 21.5 oder 24 eingibt auf 1.19 oder 1.215 bzw. auf 1.24 um mit PHP dann rechnen zu können? Warum benötige ich dafür eine eigene Funktion oder was muss hier umgewandelt werden. Wo habe ich geschrieben dass ich aus einem , ein . machen möchte?

        1. Hallo IsyChan,

          warum nicht? Meine Frage ist eigentlich GANZ einfach.

          Eben nicht.

          Wie komme ich wenn ein User 19 oder 21.5 oder 24 eingibt auf 1.19 oder 1.215 bzw. auf 1.24 um mit PHP dann rechnen zu können?

          rein mathematisch 1 + $eingabe / 100.

          Wo habe ich geschrieben dass ich aus einem , ein . machen möchte?

          Falls deine Benutzer versehentlich ein Komma eingeben, musst du es in einen Punkt umwandeln, damit du damit rechnen kannst.

          Bis demnächst
          Matthias

          --
          Signaturen sind bloed (Steel) und Markdown ist mächtig.
          1. Moin!

            Falls deine Benutzer versehentlich ein Komma eingeben

            "Versehentlich" ist gut. Die erwarten, dass die das dürfen und die Dezimaltrenner-Taste im Ziffernblock (neben der 0) ist bei hierzulande üblichen Tastatureinstellungen auch damit belegt.

            Jörg Reinholz

            1. "Versehentlich" ist gut. Die erwarten, dass die das dürfen und die Dezimaltrenner-Taste im Ziffernblock (neben der 0) ist bei hierzulande üblichen Tastatureinstellungen auch damit belegt.

              Es war aber NICHT die Frage wie ich ein , in einen . umwandeln kann! Also erwarte ich darüber ach keine Diskussion. Genau dieses Problem hat nämlich das Forum, es wird hier über Sachen diskutiert, die überhaupt nicht zur Diskussion stehen. Damit werden User vergrault, weil es in anderen Foren einfach eine konkrete Antwort auf keine Frage gibt, wie man es auch in der Schule früher gelernt hat.

              1. Moin!

                wie man es auch in der Schule früher gelernt hat.

                Naja. In meiner Schule (das war im Osten) gab es Prozentrechnung. Ich glaube in der 5. oder 6. Klasse. Im Westen, so hörte ich, gab es das auch. Ich nahm deshalb an, dass das triviale Problem nicht das Deine sei. Denn das hast Du ja früher ebenso gut gelernt wie gutes Benehmen.

                Jörg Reinholz

              2. Hi,

                Genau dieses Problem hat nämlich das Forum, es wird hier über Sachen diskutiert, die überhaupt nicht zur Diskussion stehen. Damit werden User vergrault, weil es in anderen Foren einfach eine konkrete Antwort auf keine Frage gibt, wie man es auch in der Schule früher gelernt hat.

                ich weiß ja nicht, wie es in deiner Schulzeit üblich war - aber die meisten meiner Lehrer haben auf Schülerfragen nicht direkt mit "ja" oder "nein" oder ähnlich direkten Antworten reagiert, sondern sind zur Erklärung etwas in die Breite und in die Tiefe gegangen, so dass wir als Schüler aus der Antwort des Lehrers unsere Schlussfolgerungen ziehen mussten und damit zwangsläufig selbst auf die (hoffentlich) richtige Antwort kamen.

                So long,
                 Martin

              3. Hallo IsyChan,

                Es war aber NICHT die Frage wie ich ein , in einen . umwandeln kann!

                Aber das kann zu einem Problem werden.

                Also erwarte ich darüber ach keine Diskussion.

                Das ist eine falsche Erwartungshaltung. Ich würde es gut finden, wenn mögliche Fehlerquellen angesprochen werden, an die ich möglicherweise noch nicht gedacht habe. Außerdem werden auch gleich noch Lösungsansätze mitgeliefert. Die Verwendung von <input type="number"> Wiki/input#number wäre ein weiterer. Allerdings soll es noch Browser geben, die ein invalides Formular trotzdem abschicken. Je nach Browser kann das Kommaproblem trotzdem bestehen bleiben.

                Genau dieses Problem hat nämlich das Forum, es wird hier über Sachen diskutiert, die überhaupt nicht zur Diskussion stehen. Damit werden User vergrault, weil es in anderen Foren einfach eine konkrete Antwort auf keine Frage gibt, wie man es auch in der Schule früher gelernt hat.

                Glücklicherweise lernt man heute in der Schule, eine Fragestellung von möglichst vielen Seiten zu betrachten.

                Bis demnächst
                Matthias

                --
                Signaturen sind bloed (Steel) und Markdown ist mächtig.
              4. Hallo

                […] Genau dieses Problem hat nämlich das Forum, es wird hier über Sachen diskutiert, die überhaupt nicht zur Diskussion stehen. Damit werden User vergrault, weil es in anderen Foren einfach eine konkrete Antwort auf keine Frage gibt…

                Wenn du ein klassisches Frage/Antwort-Forum suchst, wärst du womöglich bei stackoverflow besser aufgehoben.

                Der Zweck dieses Forums besteht, zumindest nach meinem Verständnis, eben nicht ausschließlich darin, Fragen mit einer konkreten Antwort zu versehen, sondern auch darüber hinaus Hintergründe zu beleuchten und die entsprechenden Themen in ihrem jeweiligen Kontext zu behandeln, denn der Rezipient ist hier nicht nur der Fragesteller, sondern die Antworten richten sich auch an andere Leser.

                Ich finde, dass gerade darin die große Stärke dieses Forums liegt, denn auch wenn dieser Diskussionsstil für Fragesteller hin und wieder etwas beschwerlich erscheint, denke ich, dass man auf diese Art letztlich mehr lernt. - Jedenfalls geht es mir so… ;-)

                Gruß,

                Orlok

            2. Wenn ich dieses nutze:

              str_replace (".", ",", $_POST['eingabe1']])
              

              und in mein Feld 21,5 eingebe, wird mit 21 gerechnet anstatt mit 21.5 also ist es einfach nur misst und bestätigt mich, dass man auf solche Prüfungen verzichten kann und den User drauf hinweist wie er es einzugeben hat.

              1. Moin!

                Wenn ich dieses nutze:

                str_replace (".", ",", $_POST['eingabe1']])
                

                und in mein Feld 21,5 eingebe, wird mit 21 gerechnet anstatt mit 21.5 also ist es einfach nur misst

                Das heisst "Mist".

                Den DU gebaut hast, als DU FALSCH abgetippt hast. Du sollst das Komma durch den Punkt ersetzen und nicht anders herum.

                str_replace (",", ".", $_POST['eingabe1']])
                

                Jörg Reinholz

                1. Hallo,

                  sieht also alle so aus?

                  $feld1 = ''; 
                    if (isset($_POST['eingabe1'])) 
                  	{ $feld1 = $Preis * (1+str_replace (",", ".", $_POST['eingabe1'])/100); 
                  	  $feld1 = str_replace (".", ",", $feld1); 
                  	}
                  

                  Nur weil ihr glaubt die User können nicht lesen was sie eingeben sollen so ein Aufwand zu betreiben und den Code unnötige aufzublähen. Dadurch wird dieser sehr unübersichtlich.

                  1. Moin!

                    Nur weil ihr glaubt die User können nicht lesen was sie eingeben sollen so ein Aufwand zu betreiben und den Code unnötige aufzublähen. Dadurch wird dieser sehr unübersichtlich.

                    Ein gewisser Phil Karlton sagte einmal:

                    "There are only two hard things in Computer Science: cache invalidation and naming things."

                    Der hatte wohl mit Benutzereingaben nicht so viel zu tun...

                    Jörg Reinholz

                2. Hallo,

                  sieht also alle so aus?

                  $feld1 = ''; 
                    if (isset($_POST['eingabe1'])) 
                  	{ $feld1 = $Preis * (1+str_replace (",", ".", $_POST['eingabe1'])/100); 
                  	  $feld1 = str_replace (".", ",", $feld1); 
                  	}
                  

                  Nur weil ihr glaubt die User können nicht lesen was sie eingeben sollen so ein Aufwand zu betreiben und den Code unnötige aufzublähen. Dadurch wird dieser sehr unübersichtlich.

                  1. Noch eine Ergänzung, da ich nach dem , zwei Stellen haben möchte:

                    $feld1 = ''; 
                      if (isset($_POST['eingabe1'])) 
                            { $feld1 = $Preis * (1+str_replace (",", ".", $_POST['eingabe1'])/100); 
                              $feld1 = str_replace (".", ",", $feld1); 
                    	  $feld1 = number_format($feld1, 2, ',', ' ');
                            }
                    

                    Der Code wird immer umfangreicher.

                    1. Noch eine Ergänzung, da ich nach dem , zwei Stellen haben möchte:

                      $feld1 = ''; 
                        if (isset($_POST['eingabe1'])) 
                              { $feld1 = $Preis * (1+str_replace (",", ".", $_POST['eingabe1'])/100); 
                                $feld1 = str_replace (".", ",", $feld1); 
                      	  $feld1 = number_format($feld1, 2, ',', ' ');
                              }
                      

                      Der Code wird immer umfangreicher.

                      Und wenn ich diesen Code nutze, kommt wenn ich 100 eingebe * 1,245 mache 121,00 es sollte aber 121.5 raus komme. Denn 100+21,5%=121,5

                      Edit, Fehler gefunden

                      $feld1 = ''; 
                        if (isset($_POST['eingabe1'])) 
                              { $feld1 = $Preis * (1+str_replace (",", ".", $_POST['eingabe1'])/100); 
                                $feld1 = number_format($feld1, 2, ',', ' ');
                                $feld1 = str_replace (".", ",", $feld1); 
                              }
                      
                      1. Moin!

                        Nach

                              $feld1 = number_format($feld1, 2, ',', ' ');
                        

                        ist das

                        $feld1 = str_replace (".", ",", $feld1);

                        überflüssig, weil Du mit number_format() schon das Komma (zweites Argument) als Dezimaltrenner und das Leerzeichen als Tausendertrenner gesetzt hast. Es gibt keinen Punkt mehr zu ersetzen.

                        Jörg Reinholz

                        1. Hallo,

                          Nach

                                $feld1 = number_format($feld1, 2, ',', ' ');
                          

                          ist das

                          $feld1 = str_replace (".", ",", $feld1);

                          überflüssig, weil Du mit number_format() schon das Komma (zweites Argument) als Dezimaltrenner und das Leerzeichen als Tausendertrenner gesetzt hast. Es gibt keinen Punkt mehr zu ersetzen.

                          danke!

                          1. Moin!

                            danke!

                            Bitte.

                            Da wir gerade dabei sind:

                            number_format($float, $dezimalstellen, $dezimaltrenner, $tausdertrenner);

                            sollte man unmittelbar bei der Ausgabe verwenden. Besonders wenn man wie Du die Variable "wiederverwendet". Wenn irgendwann mal zwischen der Zeile

                            $feld1 = number_format($feld1, 2, ',', ' ');
                            

                            und der Ausgabe ein paar Zeilen liegen und Du Dich nicht mehr gut an Dein Programm erinnerst versuchst Du vielleicht mit $feld1 noch was zu berechnen - was dann (wie Du ja erlebt hast) zu merkwürdigen Ergebnissen führt. Das, weil PHP dann versucht den String als Zahl zu interpretieren und beim Komma (als für eine Zahl ungültiges Zeichen) einfach aufhört. So wird dann aus "21,4" einfach die Zahl 21.

                            Jörg Reinholz

                            1. Hallo,

                              number_format($float, $dezimalstellen, $dezimaltrenner, $tausdertrenner);

                              sollte man unmittelbar bei der Ausgabe verwenden. Besonders wenn man wie Du die Variable "wiederverwendet". Wenn irgendwann mal zwischen der Zeile

                              $feld1 = number_format($feld1, 2, ',', ' ');
                              

                              und der Ausgabe ein paar Zeilen liegen und Du Dich nicht mehr gut an Dein Programm erinnerst versuchst Du vielleicht mit $feld1 noch was zu berechnen - was dann (wie Du ja erlebt hast) zu merkwürdigen Ergebnissen führt. Das, weil PHP dann versucht den String als Zahl zu interpretieren und beim Komma (als für eine Zahl ungültiges Zeichen) einfach aufhört. So wird dann aus "21,4" einfach die Zahl 21.

                              wollte ich eigentlich auch, denn ich muss etwas weiter oben wie du schon richtig geschrieben hast damit noch weiter rechnen. Wenn ich dieses direkt bei der Ausgabe anwende

                              <?php echo number_format($feld1, 2, ',', ' ');?>
                              

                              knallt es wieder :/ "Warning: number_format() expects parameter 1 to be double, string given in" deshalb muss ich oben eben aufpassen.

                  2. Moin!

                    [code]

                    Dadurch wird dieser sehr unübersichtlich.

                    Deshalb hatte ich eine hübsche Funktion vorgeschlagen, welche sogar eine gewisse Plausibilitätsüberprüfung vornehmen kann und die man auch gleich in eine eigene Datei auslagern und dann mit require_once laden kann.

                    Jörg Reinholz

          2. Hallo Matthias,

            rein mathematisch 1 + $eingabe / 100.

            danke genau das hat mir gefehlt:

            $feld1 = ''; if (isset($_POST['eingabe1'])) { $feld1 = $Preis * (1+$_POST['eingabe1']/100); }
            
            1. Hallo,

              rein mathematisch 1 + $eingabe / 100.

              danke genau das hat mir gefehlt:

              ich hätte deine Schwierigkeiten werweißwo vermutet, aber nicht bei elementarer Grundschulmathematik. Kein Wunder, dass dir auf Anhieb niemand eine für dich passende Antwort geben konnte.

              So long,
               Martin

              1. ich hätte deine Schwierigkeiten werweißwo vermutet, aber nicht bei elementarer Grundschulmathematik. Kein Wunder, dass dir auf Anhieb niemand eine für dich passende Antwort geben konnte.

                Genua so hatte ich es aber im Ausgangsposting geschrieben. Da stelle ich mir die Frage in der Grundschule lernt man lesen?

                1. Hi,

                  ich hätte deine Schwierigkeiten werweißwo vermutet, aber nicht bei elementarer Grundschulmathematik. Kein Wunder, dass dir auf Anhieb niemand eine für dich passende Antwort geben konnte.

                  Genua so hatte ich es aber im Ausgangsposting geschrieben.

                  nein, dein Posting ist konfus beschrieben, erwähnt eine Menge irrelevanter Information, die nur vom Thema ablenkt und den Blick auf die eigentliche Frage verschleiert.

                  Da stelle ich mir die Frage in der Grundschule lernt man lesen?

                  Manchmal. Ich konnte es schon, bevor ich in die Schule kam. Es ist aber auch bekannt, dass sehr viele Menschen sich schwer tun, einen Sachverhalt klar und verständlich zu beschreiben.

                  So long,
                   Martin

        2. @@IsyChan

          Meine Frage ist eigentlich GANZ einfach. Wie komme ich wenn ein User 19 oder 21.5 oder 24 eingibt auf 1.19 oder 1.215 bzw. auf 1.24 […]?

          Die Antwort ist eigentlich auch GANZ einfach. Wie kommst du denn von 19 auf 0.19 bzw. von 21.5 auf 0.215? Komma verschieben um wieviele Stellen? Heißt also: geteilt durch was?

          Wie du von 0.19 auf 1.19 kommst, sollte dir noch aus der 1. Klasse bekannt sein.

          Für so wenig Ahnung hast du manchmal eine ganz schön große Klappe.

          LLAP 🖖

          --
          Ist diese Antwort anstößig? Dann könnte sie nützlich sein.
          1. Hallo Gunnar Bittersmann,

            Komma verschieben um wieviele Stellen? Heißt also: geteilt durch was?

            Wie du von 0.19 auf 1.19 kommst, sollte dir noch aus der 1. Klasse bekannt sein.

            Ne, ne. In der ersten Klasse gibt es noch keine gebrochenen Zahlen.

            Bis demnächst
            Matthias

            --
            Signaturen sind bloed (Steel) und Markdown ist mächtig.
            1. @@Matthias Apsel

              Wie du von 0.19 auf 1.19 kommst, sollte dir noch aus der 1. Klasse bekannt sein.

              Ne, ne. In der ersten Klasse gibt es noch keine gebrochenen Zahlen.

              Stimmt. Und von 0.19 auf 1.19 ist was gaaanz anderes als von 0 auf 1. Mein Fehler.

              LLAP 🖖

              --
              Ist diese Antwort anstößig? Dann könnte sie nützlich sein.
              1. Tach,

                Wie du von 0.19 auf 1.19 kommst, sollte dir noch aus der 1. Klasse bekannt sein.

                Ne, ne. In der ersten Klasse gibt es noch keine gebrochenen Zahlen.

                Stimmt. Und von 0.19 auf 1.19 ist was gaaanz anderes als von 0 auf 1. Mein Fehler.

                ja, soweit ich mich erinnere sind Dezimalbrüche in Berlin z.B. erst in der fünften Klasse dran; würde ein Erstklässler seine für die Addition gelernten Regeln anwenden, ergäbe 0.19 + 1 nämlich 0.20 oder vielleich auch einfach nur 20.

                mfg
                Woodfighter

          2. Dazu sag ich nur

            DUMM DÜMMER AM DÜMMSTEN wer solche Antworten von sich gibt! Aber du meinst eh du bist Mister Schlau und nur deine Antworten / Meinungen wählen. In Wirklichkeit hast du vom Realen Umfeld keine Ahnung. Daher werde ich dich ab sofort ignorieren. Auf solche Leute kann ich verzichten das hat man mit schon in der Schule beigebracht.

            1. Auf solche Leute kann ich verzichten das hat man mit schon in der Schule beigebracht.

              leider ist dabei die Prozentrechnung auf der Strecke geblieben. Na ja, man muss Prioritäten setzen.

            2. Hallo,

              sag mal, verkaufst du eigentlich Druckertinte?

              Gruß
              Kalk

              1. sag mal, verkaufst du eigentlich Druckertinte?

                Nöö. Porno Filme und drehe die auch!

            3. @@IsyChan

              DUMM DÜMMER AM DÜMMSTEN

              Auf „Für so wenig Ahnung hast du manchmal eine ganz schön große Klappe“ derart zu antworten, spricht Bände.

              LLAP 🖖

              --
              Ist diese Antwort anstößig? Dann könnte sie nützlich sein.
  2. Danke für eure Verarschung! Von dummen Antworten habe ich die Schnauze voll!

    1. Hallo,

      Danke für eure Verarschung! Von dummen Antworten habe ich die Schnauze voll!

      Suchst du wirklich nach der Formel, um von 19 auf 1.19 umzurechnen? Du könntest 17.81 abziehen...

      Gruß
      Kalk

    2. Moin!

      Danke für eure Verarschung! Von dummen Antworten habe ich die Schnauze voll!

      Womöglich bekommst Du solche oft. Vielleicht liegt das daran, dass Du mit Deinen freundlichen Antworten so ungeheuer amüsierst.

      Wenn Du nach einer Eingabe von "19" mit 1,19 multiplizieren willst, dann multiplizierte so:

      $brutto = $netto * (100 + 19) / 100;

      200 * (100 + 19) / 100 = 200 * 1,19 = 238

      Mit "7":

      $brutto = $netto * (100 + 7) / 100;

      200 * (100 + 7) / 100 = 200 * 1,07 = 214

      Danach wirst Du auf das Problem stoßen, von dem ich annahm, dass es schon Dein Problem sei. Das war wohl vermessen.

      Jörg Reinholz

  3. Hallo,

    ich sag nur Ärger :7 Jetzt erhalte ich diese Meldung:

    Notice: A non well formed numeric value encountered

    if (isset($_POST['lo'])) { 
                  $loAusgabe = number_format($_POST['lo'], 2, ',', ' '); }
    

    In das Feld gebe ich 97,00 ein. Was geht hier jetzt wieder schief? :/

    1. Moin!

      In das Feld gebe ich 97,00 ein. Was geht hier jetzt wieder schief? :/

      Dann machst Du das, was Deine Benutzer nicht tun sollten.

      Du verwendest das Komma. Also... wenn Du mit dem Wert rechnen willst, dann musst Du ihn in eine Zahl umwandeln. Z.B. in dem Du die von mir vorgestellte Funktion german_str_to_float nutzt.

      Etwas wie:

      require_once('./lib/german_str_to_float.php');
      $zahl = false;
      
      if ( isset($_POST['lo']) ) { 
          $zahl = german_str_to_float( $_POST['lo'] );
      }
      
      if (false !== $zahl) {
          $loAusgabe = number_format($zahl, 2, ',', ' ');
      } else {
          $loAusgabe = '0,00';
      }
      

      sieht zwar widersinnig aus. Aber ich weiss ja nicht, was Du mit der Zahl sonst noch so machst.

      Jörg Reinholz

    2. Moinsen,

      ich sag nur Ärger :7 Jetzt erhalte ich diese Meldung:

      Notice: A non well formed numeric value encountered

      if (isset($_POST['lo'])) { 
                    $loAusgabe = number_format($_POST['lo'], 2, ',', ' '); }
      

      In das Feld gebe ich 97,00 ein. Was geht hier jetzt wieder schief? :/

      Wohl das, worauf man dich schon hingewiesen hat: 97,00 ist ein String, keine Zahl. (Du erinnerst Dich an wilde Funktionen, die punkte und Kommas tauschen?) Das Komma in der Funktion bestimmt nur wie die eingegebene Zahl formatiert wird. macht also aus 97.00 eine 97,00 nicht umgekehrt.

      Gruß