Ankündigung

Einklappen
Keine Ankündigung bisher.

Nachkomma stellen einstellen bei Taschenrechner

Einklappen

Neue Werbung 2019

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

  • Nachkomma stellen einstellen bei Taschenrechner

    Ich habe folgendes Problem, für Informatik soll ich einen Taschenrechner mit den Funktionen des addierens, subtrahierens, multiplizierens und dividierens erstellen. Zusätzlich sollten wir noch eine Währungsumrechner von DM in € und umgekehrt erstellen, im Grunde ist das ja das gleiche wie das vorige - ist aber auch nicht so wichtig.
    Nun mein Problem: Das Script läuft an sich und rechnet, nur leider rechnet er immer ohne Nachkommastellen, sprich 12 : 7 = 1 ^^ Das ist natürlich nicht so sonderlich toll. Ich habe es schon irwie mit "number_format" probiert, etc. etc. ^^

    Hier ist der Code von dem Taschenrechner:
    PHP-Code:
    <?php
        
    if (!empty($_POST["submit"]))                        // Wenn Eingabe 'submit' ungleich leer ist, dann mache...
            
    {
            
    $zahl1 $_POST["zahl1"];                        // Variable 'zahl1' = Zahl 1; Variable 'zahl1' = Übertragener Wert von 'name=zahl1'
            
    $zahl2 $_POST["zahl2"];                        // Variable 'zahl2' = Zahl 2; Variable 'zahl2' = Übertragener Wert  von 'name=zahl2'
            
    $rz $_POST["rz"];                              // Variable 'rz' = Rechenzeichen; Variable 'rz' = Übertragener Wert von 'rz' (ausgewählte Option)
            
            
    if ($rz == "+")    $e bcadd($zahl1$zahl2);   // e = Ergebnis; Addition von Variable 'zahl1' und Variable 'zahl2'
            
    if ($rz == "-")    $e bcsub($zahl1$zahl2);   // e = Ergebnis; Subtraktion von Variable 'zahl1' und Variable 'zahl2'
            
    if ($rz == "*")    $e bcmul($zahl1$zahl2);   // e = Ergebnis; Multipliaktion von Variable 'zahl1' und Variable 'zahl2'
            
    if ($rz == ":")    $e bcdiv($zahl1$zahl2);   // e = Ergebnis; Division von Variable 'zahl1' und Variable 'zahl2'
            
    if ($rz == "€"$e bcmul($zahl11.95583) AND $dm "DM";  // e = Ergebnis; Multiplikation von Variable 'zahl1' und '1.95583'
            
    if ($rz == "DM")   $e bcdiv($zahl11.95583) AND $euro "€";  // e = Ergebnis; Division von Variable 'zahl1' und '1.95833'
            

            
    echo "".$zahl1." ".$rz." ".$zahl2." = ".$e." ".$euro." ".$dm."";   // Ausgabe
            
    }
    ?>
    Letztlich ist vielleicht auch irgendwie das Problem, weswegen ich das nicht hinkriege, dass das Ergebnis ja schließlich (logischerweise) eine Variable ist. Wahrscheinlich bin ich einfach nur dumm, aber das wäre mir auch nichts neues
    Hoffe ihr könnt mir helfen :c


  • #2
    PHP-Code:
    $zahl *= 1.0
    Sollte dein Problem lösen.

    EDIT:

    Und bezüglich deines "rz", schau dir mal Switch an.

    EDIT2:

    Sicher das du:

    PHP-Code:
    $c $a $b
    und nicht:

    PHP-Code:
    $c $a $b
    machst?
    - Laravel

    Kommentar


    • #3
      Schau dir dochmal die Funktionen an.

      Beispiel mit mal: http://php.net/manual/de/function.bcmul.php

      Da steht alles was du wissen musst

      Kommentar


      • #4
        ggf hilft Dir

        PHP-Code:
        $BetragB round($Betrag,2); 

        Kommentar


        • #5
          Danke für die schnellen Antworten

          Letztlich habe ich es mit der Methode von "chiller20000" gemacht, aber die anderen haben/hätten auch funktioniert.

          Jetzt funktioniert es jedenfalls ausgzeichnet, vielen Dank für die Hilfe!

          VG

          Kommentar


          • #6
            Ja, vor allem die Variante $b = $a *1.0 halte ich für sehr professionell .

            $b = (float)$a;
            GitHub.com - ChrisAndChris - RowMapper und QueryBuilder für MySQL-Datenbanken

            Kommentar


            • #7
              PHP-Code:
              if ($rz == "DM")   $e bcdiv($zahl11.95583) AND $euro "€" 
              Hier wird mir der Sinn nicht ganz klar... was soll das AND $euro = "€" da hinten dran bewirken?
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Vorsicht, bcdiv kann nicht kaufmännisch runden:
                http://3v4l.org/vj13h
                http://php.net/manual/de/function.bcdiv.php#100118

                Betrifft natürlich auch alle anderen bc-Funktionen, wenn die Quellwerte mehr als $scale Stellen haben.
                Standards - Best Practices - AwesomePHP - Guideline für WebApps

                Kommentar

                Lädt...
                X