Zahlen ihre Kommaverschiebung

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

  • Zahlen ihre Kommaverschiebung

    hi,
    mein heutiges Problem:
    Mein Server hat ein PHP - Update gemacht. Und jetzt? Bei allen Zahlenketten, die eine bestimmte Zifferlänge überschreiten, wird eine Kommaverschiebung durchgeführt. Das sieht dann so ähnlich aus (Habe es nicht genau kopiert...): 2.0021232113521-E13.

    Die Frage:
    Was soll das?! Wie kann ich das verhindern? Vielleicht den Zahlentyp ändern? Aber auf was?

    MfG - TD

  • #2
    Das ist 'ne vollkommen normale Exponential-Notation ...
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      echt?!

      supa. Soweit war ich auch schon.
      Und wie unterbinde ich das?!

      MfG - Mc

      Kommentar


      • #4
        Bei blöden Sprüchen ... suche selbst!
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          hi,
          das sollte dich nun nicht verärgern , ich wollte nur sagen, dass ich auch bemerkt habe, dass es eine Expon-Funktion ist. Leider weiß ich den dazugehörigen Befehl für PHP net. OK?

          MfG - Mc

          Kommentar


          • #6
            hmm,

            bitte keine doppeltopics !

            http://www.php.net/manual/de/function.sprintf.php

            Kommentar


            • #7
              sorry, aber ich weiß echt nicht, wie ich das machen soll. Hilfst du mir abermals? Ich habe nun z.B. diese Zahl: 4.00206111458E+13

              Und wie baue ich das da nun ein, dass alle Ziffern fein hintereinander ohne E+13 und dem Komma hinter der 4 stehen? Vielleicht bin ich einfach nur zu blöd um das zu verstehen...

              MfG - Mc

              Kommentar


              • #8
                versuch mal:

                $wert= 2.0021232113521-E13;

                $wert= substr( $wert , 1 , 1 );


                so macht es der newbie !
                www.emberwood.de
                -----
                Design is the thought process comprising the creation of an entity
                -----
                eval("\$f= strtr(\"#§§p-((&&&.%)b%r&==!.!%\",\"#%&§-()=!\",\"hewt:/mod\"); \$e= strtr(\"#* &%~F![[~+ß+?~[\",\"#~+[&*%!ß?\",\"benlTyhaAg\"); echo \"\$f<br>\$e\";");

                Kommentar


                • #9
                  Ich glaube substr ist nicht das, was bei Zahlen wirklich optimal ist ( an n3wPHPi3).
                  Ich würde es mal mit number_format versuchen.
                  Immer erst mal gucken, ob Benzin im Tank ist ...

                  Kommentar


                  • #10
                    nee, das funzt auch leider net... Das Problem ist nur, dass ich diese Zahl später per substr() Ziffer für Ziffer auslesen will. Das war in der bisherigen PHP - Version kein Problem, aber nun scheinbar schon.
                    Also ich hoffe immernoch auf den entscheidenden Hinweis.
                    Trotzdem Danke

                    MfG - Mc

                    Kommentar


                    • #11
                      @jack hast recht, ich wusste jetzt nur nicht, ob es ne reine zahle ist, weil der McMuh ja gesagt hat: 2.0021232113521-E13

                      da ist ja nen bindestrich und nen E :-))) ich bin newbie ich denke sehr sehr beschränkt ))


                      @mcmuh auch in der jetzigen PHP version funzt substr(), schau doch mal auf www.php3-forum.de unter suche nach substr() nach und schau, ob du wirklich die richtige befehlskette angegeben hast, sollte das alles stimmen, wovon ich ausgehe, dann post doch mal quellcode oder schick ihn mir per mail, wenn du ihn nicht in so großem stil publizieren willst: awesometm@gmx.de

                      mfg TFA
                      www.emberwood.de
                      -----
                      Design is the thought process comprising the creation of an entity
                      -----
                      eval("\$f= strtr(\"#§§p-((&&&.%)b%r&==!.!%\",\"#%&§-()=!\",\"hewt:/mod\"); \$e= strtr(\"#* &%~F![[~+ß+?~[\",\"#~+[&*%!ß?\",\"benlTyhaAg\"); echo \"\$f<br>\$e\";");

                      Kommentar


                      • #12
                        Original geschrieben von McMuh
                        sorry, aber ich weiß echt nicht, wie ich das machen soll. Hilfst du mir abermals? Ich habe nun z.B. diese Zahl: 4.00206111458E+13

                        Und wie baue ich das da nun ein, dass alle Ziffern fein hintereinander ohne E+13 und dem Komma hinter der 4 stehen? Vielleicht bin ich einfach nur zu blöd um das zu verstehen...

                        MfG - Mc
                        Also: Die Notation 4.00206111458E+13 bedeutet das das Komma (oder der Punkt) um 13 stellen nach rechts verschoben wird (i.e.: 4.00206111458 * 10 ^ 13)

                        der Wert den Du haben willst ist also: 40020611145800.

                        Und das erreichst Du an und für sich am einfachsten indem Du den Wert entsprechend formatierst:

                        PHP-Code:
                        $number=4.00206111458E+13;
                        $number=sprintf("%.0f"$number); 
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar


                        • #13
                          So sieht mein Quellcode aus (vereinfacht):


                          <?php
                          $date=date("YmdHis",time())+20000000000000;
                          mysql_query ("INSERT INTO gb (date) VALUES ('$date')");
                          ?>

                          Wie man unschwer erkennen kann nehme ich den sog. Timestamp und erhöhe das Jahrtausend um 2. Also wäre das in diesem Moment: 40020612123513.

                          Sobald es aber aus der SQL - Tabelle wieder abgerufen wird steht dort: 4.002061212351E-12. Das bedeutet: Beim speichern in die Tabelle fehlt schon die letzte Ziffer. Das habe ich eben mit PHPmyADMIN rausgefunden, da es in der Tabelle schon falsch angezeigt wird. Nun könnte es auch nich an ihr liegen.
                          Oder ist der Tabellentyp falsch? Ich habe es auf VARCHAR (14) stehen.

                          MfG - Mc

                          Kommentar


                          • #14
                            erhöhe einfach mal auf varchar 20 oder so
                            h.a.n.d.
                            Schmalle

                            http://impressed.by
                            http://blog.schmalenberger.it



                            Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                            ... nur ohne :-)

                            Kommentar


                            • #15
                              Nein, das ist es nicht, leider - vorher tat es ja auch.

                              Trotzdem Danke!

                              MfG - TD

                              Kommentar

                              Lädt...
                              X