Ankündigung

Einklappen
Keine Ankündigung bisher.

Nachkommastellen ausgeben

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

  • Nachkommastellen ausgeben

    Hallo ich habe ein sehr leichtes Problem, bisher aber noch keine passende Funktion finden können. Ich könnte mir selber eine schreiben aber warum wenn es bestimmt schon etwas gibt.

    Folgendes, ich habe eine Zahl. Sagen wir mal 2,7.
    Ich möchte nun das eine Funktion mir die Nachkommazahl als ganzes wiedergibt, also die 7.

    Bin hier schon ewig im PHP-Handbuch am suchen und finde irgendwie nichts, wäre also nett wenn ich hier von jemanden das Gehirn anzapfen könnte
    Das Unverständlichste am Universum ist im Grunde, dass wir es verstehen können.
    Albert Einstein


  • #2
    Da ist mir auch nichts bekannt. Wirst Du wohl selbst ran müssen...
    So kurz im Kopf überschlagen, würd' ichs vielleicht einfach ganz banal mit split() trennen.
    Competence-Center -> Enjoy the Informatrix

    Kommentar


    • #3
      oder wenn du den mathematischen weg nehmen willst
      PHP-Code:
      $zahl 2.7;
      $komma fmod($zahl1); 
      sigpic

      Kommentar


      • #4
        Jo, das' natürlich geschickter...
        Competence-Center -> Enjoy the Informatrix

        Kommentar


        • #5
          Naja wenn man davon ausgeht, dass er das als Ganzzahl haben möchte, ist die mathematische Lösung allerdings länger ^^.
          PHP-Code:
          <?php
          $zahl 
          2.768;
          $komma fmod($zahl1);
          while(
          strval(fmod($komma1)) != 1$komma $komma*10;
          echo 
          $komma;
          ?>
          sigpic

          Kommentar


          • #6
            Warum?
            Mit Deinem
            PHP-Code:
            $komma fmod($zahl,1); 
            hast Du doch bereits 0.7 oder auch 0.768
            Dann reicht doch einfach
            PHP-Code:
            $nachkomma = (int)(substr($komma,2)); 
            Damit hätte er doch einen int...
            Competence-Center -> Enjoy the Informatrix

            Kommentar


            • #7
              Schade das es offensichtlich nichts vorgefertigtes gibt.
              Ist aber beim näheren nachdenken auch nicht wirklich schwer zu lösen, habe aber trotzdem ne Funktion dafür geschrieben. Spart bei häufiger Anwendung doch ein bisschen Platz...

              PHP-Code:
              //Funktion:  giverestnumber
              //Aufgabe: Den Nachkommawert als Ganzzahl ausgeben 
              //Return: Nachkommawert als Ganzzahl
              function giverestnumber($number)
              {

                
              //Wert abgerundet (je nach Fall)
                
              $firstround round($number); 
                if (
              $firstround $number){
                  
              $roundnumber $firstround;
                }else{
                  
              $roundnumber $firstround-1
                }
                 
                
              //Zwischenwert ermitteln
                
              $restnumber $number-$roundnumber
                
                
              //Entwert ermitteln
                
              $finalnumber round($restnumber,1)*10
                  
              return 
              $finalnumber;

              }
              //Ende Funktion giverestnumber 
              Habe den Quellcode auf den aktuellen Stand gebracht, der Nachkommawert wird jetzt als Ganzzahl ausgegeben und es findet eine Fallunterscheidung statt.
              Vielen Dank an alle die geholfen haben
              Das Unverständlichste am Universum ist im Grunde, dass wir es verstehen können.
              Albert Einstein

              Kommentar


              • #8
                Ab .5 rundest du dann auf. Ein type cast ist sicher auch nicht verkehrt.
                Hinweis: PHP behandelt Strings wie "12,300.2" standardmäßig nicht korrekt. Siehe String-Konvertierung.
                siehe auch floor
                I like cooking my family and my pets.
                Use commas. Don't be a psycho.
                Blog - CoverflowJS

                Kommentar


                • #9
                  Keine Ahnung, was genau Du brauchst:
                  PHP-Code:
                  function xyz ($var) {
                    return ((int) ((
                  $var - (int) $var) * 10));

                  PHP-Code:
                  function xyz ($var) {
                    return (
                  substr (($var - (int) $var) , 2) | '0');

                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar


                  • #10
                    Also wenn die Aufgabe lautet, den Nachkommawert als INT auszugeben, dann versuchs mal damit:

                    PHP-Code:
                    <?php
                    $zahl 
                    2.75;
                    $array explode(".",$zahl); 
                    $ergebnis $array[1];
                    echo 
                    $ergebnis;
                    echo 
                    "<br><br>";
                    ?>

                    Kommentar


                    • #11
                      Oder so, wenn Du nur die erste Nachkommastelle gerundet als INT haben willst.

                      PHP-Code:
                      <?php
                      $zahl 
                      2.75;
                      $zahl_gerundet round($zahl1); 
                      $array explode(".",$zahl_gerundet); 
                      $ergebnis $array[1];
                      echo 
                      $ergebnis;
                      echo 
                      "<br><br>";
                      ?>

                      Kommentar


                      • #12
                        Beide Lösungen setzen allerdings das Vorhandensein eines Kommas voraus.
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          Warum Komma? PHP verwendet nen Punkt bei Dezimalzahlen. Aber mit Komma geht auch....

                          PHP-Code:
                          <?php
                          $zahl 
                          "2,75";

                          $zahl_neu str_replace(",","."$zahl);

                          echo 
                          "Zahl: $zahl_neu<br><br>";

                          $zahl_gerundet round($zahl_neu1); 
                          $array3 explode(".",$zahl_gerundet); 
                          $ergebnis $array3[1];
                          echo 
                          $ergebnis;
                          echo 
                          "<br><br>";
                          ?>

                          Kommentar


                          • #14
                            Ja, das ist mir klar. Ich wollte sagen, dass Deine Lösungen mit INT-Werten nicht arbeitet.
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar


                            • #15
                              Verstehe ich nicht.

                              Wenn der Ausgangswert ein INT ist, gibt es keine Nachkommastellen.
                              Und Nachkommastellen als ganzahligen Wert ausgeben, kann meine Lösung.
                              Oder hab ich da was falsch verstanden?

                              Kommentar

                              Lädt...
                              X