Bernd: 19 stellige Zahl in DB und zurück.

Guten Abend allerseits,
ich habe folgendes Problem:
ich schreibe mit PHP eine 19 Stellige Zahl in eine Datenbank in ein Feld vom Typ varchar. Wenn ich diese Zahl wieder raushole, kriege ich sie in der Schreibweise: 6.747483398E16, was ja 10 hoch 16 heißt. gibt es in PHP eine einfach möglichkeit die zahl zurückzuwandeln, so das ich wieder eine anzeigbare version erhalte?
schönen Abend noch
Bernd

  1. Hello,

    ich schreibe mit PHP eine 19 Stellige Zahl in eine Datenbank in ein Feld vom Typ varchar. Wenn ich diese Zahl wieder raushole, kriege ich sie in der Schreibweise: 6.747483398E16, was ja 10 hoch 16 heißt.

    Um was für eine Datenbank handelt es sich denn?
    Gibt es Typfestlegungen für die Datenfelder (Spalten)?
    Welchen Typ hat denn die Zahl vorher gehabt? -> gettype()

    Grüße

    Tom

    1. Hi,
      Danke erstmal.

      Um was für eine Datenbank handelt es sich denn?

      --> mysql.

      Gibt es Typfestlegungen für die Datenfelder (Spalten)?

      --> in welcher weise?

      Welchen Typ hat denn die Zahl vorher gehabt? -> gettype()

      --> war vorher der Inhalt eines Formularfeldes.

      kann man das Ding nicht einfach explizit in einen double casten

      Grüße

      Bernd

      1. Moin!

        Um was für eine Datenbank handelt es sich denn?

        --> mysql.

        Was sagt phpMyAdmin oder die mysql-Kommandozeile zu deiner Datenbankeintragung? Wird die da richtig angezeigt?

        kann man das Ding nicht einfach explizit in einen double casten

        Wie holst du es raus aus der Datenbank? Wenn es ein String ist, dann ist es ein String und sollte in voller Länge erscheinen.

        Wenn du daraus eine Zahl machst, kannst du diverse Dinge nicht mehr erwarten. Hängt davon ab, _was_ du erwartest und was du tust.

        - Sven Rautenberg

        --
        "Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
        (fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)
      2. Hello,

        Um was für eine Datenbank handelt es sich denn?
        --> mysql.

        Gibt es Typfestlegungen für die Datenfelder (Spalten)?
        --> in welcher weise?

        Irgendwie musst Du die Tabelle doch angelegt haben und mit

        SELECT columns from Tabelle;

        bekommst Du ein Array, in dem

        Field
        Type
        Null
        Key
        Default
        Extra

        von der Tabelle ausgegeben werden, also die Strukturdaten. Die schau Dir erstmal an. Dann sehen wir weiter.

        Welchen Typ hat denn die Zahl vorher gehabt? -> gettype()
        --> war vorher der Inhalt eines Formularfeldes.

        Ja, und danach war sie Inhalt einer Variablen und deren Type kann man bestimmen. Ist es denn im Formularfeld eine Ganzzahl oder eine Dezimalzahl oder ...?

        kann man das Ding nicht einfach explizit in einen double casten

        Nun, bei 19,keks Stellen (dezimal) ist gerade ein Typsprung.

        Besser wäre doch, nicht Medizin aufs Problem zu schütten, sondern die Ursachen des Fehlers zu beseitigen, oder?

        Grüße

        Tom

        1. hi

          Irgendwie musst Du die Tabelle doch angelegt haben und mit

          SELECT columns from Tabelle;

          bekommst Du ein Array, in dem

          Field
          Type
          Null
          Key
          Default
          Extra

          von der Tabelle ausgegeben werden, also die Strukturdaten. Die schau Dir erstmal an. Dann sehen wir weiter.

          Wie in der Frage bereits geschrieben hatte:
          ...ich schreibe mit PHP eine 19 Stellige Zahl in eine Datenbank in ein Feld vom Typ varchar..

          Besser wäre doch, nicht Medizin aufs Problem zu schütten, sondern die Ursachen des Fehlers zu beseitigen, oder?

          klar!

          schönen Gruß

          1. Hello,

            Wie in der Frage bereits geschrieben hatte:
            ...ich schreibe mit PHP eine 19 Stellige Zahl in eine Datenbank in ein Feld vom Typ varchar..

            Besser wäre doch, nicht Medizin aufs Problem zu schütten, sondern die Ursachen des Fehlers zu beseitigen, oder?

            klar!

            Gut. Ich habe den Korkenzieher von nebenan geholt. Der eignet sich auch zum Würmer aus der Nase ziehen. ;-))

            Wie lautet das SQL-Statement, mit dem die Zahl in das Stringfeld geschrieben wird?

            Wie lautet das SQL-Statement, mit dem die Zahl aus der Tabelle geholt wird?

            Wie lautet das PHP-Statement, mit dem der Inhalt des Stringfeldes aus dem Recordset in die PHP-Variable übertragen wird?

            Wie lautet die Ausgabeanweisung in PHP?

            Bis gleich

            Tom

            1. hi,

              Ich habe den Korkenzieher von nebenan geholt.

              bitte bemühe dich um eine artenbiologisch exaktere ausdrucksweise.
              du redest offenbar von einem exemplar der in wohnungen öfters anzutreffenden, meist in küchenschubladen lebenden und sich von flaschenkorken ernährenden spezies der "schraubvögel".
              dann sag das doch auch.

              gruss,
              wahsaga

              1. Hello,

                Ich habe den Korkenzieher von nebenan geholt.

                bitte bemühe dich um eine artenbiologisch exaktere ausdrucksweise.
                du redest offenbar von einem exemplar der in wohnungen öfters anzutreffenden, meist in küchenschubladen lebenden und sich von flaschenkorken ernährenden spezies der "schraubvögel".
                dann sag das doch auch.

                Ohne Nase keine Würmer. Was soll's. Hier toben im Moment nur noch "Schnell-Schnells" rum.

                Grüße

                Tom

      3. hi,

        kann man das Ding nicht einfach explizit in einen double casten

        nein, nicht bei 19 stellen.
        integer in php ist zu klein dafür, und grössere zahlen werden in float gecastet. das hat aber nur eine genauigkeit von 14 (15?) signifikanten stellen.

        gruss,
        wahsaga