Variable auf 2 Nachkommastellen runden

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

  • Variable auf 2 Nachkommastellen runden

    Hallo,

    nachdem man mir hier im Forum so super bei meinen ersten PHP-
    Schritten geholfen hat möchte ich noch eine kleine Frage loswerden.

    Ich habe eine Variable die gerundet werden soll:

    PHP-Code:
    $wertx "1256";
    $euro $wertx 265;

    echo 
    $euro
    Nun erhalte ich als Wert 4,7396226415094339622641509433962.
    Es sollen jedoch nur 2 Stellen nach dem Komma erscheinen, also
    4,74.

    Habt ihr noch einen Tipp wie ich das anstelle?

  • #2
    mit number_format
    ich glaube

    Kommentar


    • #3
      PHP-Code:
      double round double val [, int precision] ) 
      "Nicht jeder Mensch kann und soll Programmieren[...]".

      Kommentar


      • #4
        oder....

        $money1 = 68.75;
        $money2 = 54.35;
        $money = $money1 + $money2;
        // echo $money wird ausgeben "123.1";
        $formatted = sprintf("%01.2f", $money);
        // echo $formatted wird ausgeben "123.10"
        phpmanual

        Kommentar


        • #5
          Ausgabe ohne Fehlermeldung beim runden

          Grundsatz Frage: womit rundet man besser mit round oder number_format? Nun zum eigentlichen weswegen ich verzweifel:
          PHP-Code:
          <?php 

          // Datensatz vorhanden ?
              
          if(mysql_num_rows($rs) == 0) {
                    echo 
          "es liegt kein Wert vor";
                } else {

                  do {
                    echo !empty(
          $row[0]) ? "<li><center><p>".$row[2]."</p><a href=\"galerie/".$row[0]."\" title=".$row[2]." target=\"popup\" onclick=\"popup( this.href, 'popup', 'width=600, height=400, scrollbar=auto')\"><img src=\"galerie/".$row[0]."\" alt=".$row[2]."/><img src=\"galerie/".$row[0]."\" class=\"preview\" /></a><br><br><font color=red><b>"round(.$row[3]. , 2)"&euro;</b></font><br><p>".$row[1]."</p><p>".$row[4]."</p></center></li>" :"kein Bild";
                     }
                     while (
          $row=mysql_fetch_array($rs));
             }
             echo 
          "";
          ?>
          ich hab das zich male umgestellt
          PHP-Code:
          "round(.$row[3]. , 2)" 
          und ständig bleibt die Seite weiss trotz
          PHP-Code:
          error_reporting(E_ALL & ~ E_NOTICE); 
          wenn wenigstens ne Fehlermeldung käme könnte ich meinen Fehler selbst finden. Könnte mir da einer helfen bitte

          Danke vorab
          Zuletzt geändert von phppower; 20.02.2016, 08:52.

          Kommentar


          • #6
            Dann schau doch ins Error-Log!

            Versuchst du eigentlich mit den Punkten die Variable zu verzieren oder welchen Zweck sollen die haben?

            Die mysql_* Funktionen sind übrigens veraltet und sollten nicht mehr verwendet werden. Als Alternative gibt es mysqli oder PDO.

            <center> und <font> sind ebenfalls veraltet. Das Aussehen sollte CSS bestimmen und nicht HTML.

            Kommentar


            • #7
              womit rundet man besser mit round oder number_format?
              round ist die Funktion zum Runden. number_format rundet nur auch „zufällig“.

              Nun zum eigentlichen weswegen ich verzweifel
              Dein Code ist syntaktisch nicht korrekt. Deshalb greift vermutlich auch deine error_reporting-Einstellung nicht. Die Syntax wird als falsch erkannt, bevor die Ausführung beginnt. Um derlei Fehler zu sehen, kannst du den Wert für error_reporting schon in der php.ini setzen.

              Alternativ kannst du die Datei durch den PHP-Syntaxchecker laufen lassen.

              Unter Linux etwa so:

              Code:
              $ php -l datei.php
              Das führt dann zu: „PHP Parse error: syntax error, unexpected 'round' (T_STRING)“

              450 Zeichen ist zudem ein wenig lang für eine Zeile. Da darf man ruhig mal einen Umbruch einfügen.

              Die mysql-Erweiterung ist veraltet. Nutze mysqli oder PDO.

              Beachte Kontextwechsel (hier nach HTML mit htmlspecialchars).

              Nutze auch Strings in einfachen Anführungszeichen. Dann brauchst du doppelte Anführungszeichen für HTML-Attribute nicht zu escapen.

              Poste bitte nicht unbedingt in 9 Jahre alten Threads.

              Edit: So ist es zumindest etwas hübscher (aber auch nicht wirklich toll):

              PHP-Code:
              <?php

              // Datensatz vorhanden ?
              if (mysql_num_rows($rs) == 0) {
                  echo 
              "es liegt kein Wert vor";
              } else {
                  while (
              $row mysql_fetch_array($rs)) {
                      if (empty(
              $row[0])) {
                          echo 
              'kein Bild';
                          continue;
                      }

                      echo 
              '<li style="text-align: center;">';
                      echo 
              '<p>' $row[2] . '</p>';
                      echo 
              '<a href="galerie/' $row[0] . '"'
                              
              ' title="' $row[2] . '"'
                              
              ' target="popup"'
                              
              ' onclick="popup( this.href, \'popup\', \'width=600, height=400, scrollbar=auto\')"'
                              
              '>';
                      echo 
              '<img src="galerie/' $row[0] . '" alt="' $row[2] . '"/>';
                      echo 
              '<img src="galerie/' $row[0] . '" class="preview"/>';
                      echo 
              '</a>';
                      echo 
              '<br><br>';
                      echo 
              '<b style="color: red;">' round($row[3], 2) . '&euro;</b>';
                      echo 
              '<br>';
                      echo 
              '<p>' $row[1] . '</p>';
                      echo 
              '<p>' $row[4] . '</p>';
                      echo 
              '</li>';
                  }
              }
              Zuletzt geändert von mermshaus; 20.02.2016, 11:09.

              Kommentar


              • #8
                Danke für die vielen nützlichen Antworten. Wenn ich irgendwann mal mehr zeit hab muß ich komplett mal alles umschreiben und rundum erneuern.

                Kommentar

                Lädt...
                X