Announcement

Collapse
No announcement yet.

float ohne potenz

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • float ohne potenz

    Hallo zusammen,

    ich wollte mal eine etwas größere Zahl als float speichern.

    Jetzt musste ich aber feststellen, dass diese als Potenz gespeichert wird.

    Code:
    5.45457e+07
    Wie bekomme ich es hin, dass diese in einer Abfrage oder auch direkt bei der Speicherung als vollständige zahl gespeichert wird?

    gruß anno

  • #2
    Hallo,

    ein numerischer Wert wird in jedem Fall binär gespeichert. Die Darstellung als Zehnerpotenz ist da lediglich ein Anzeige/Foprmatierungsproblem.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Originally posted by anno View Post
      Wie bekomme ich es hin, dass diese in einer Abfrage oder auch direkt bei der Speicherung als vollständige zahl gespeichert wird?
      Als Datentyp float wirst du da wenig erfolgt haben, ein equivalent zum Java-typischen BigFloat gibt es unter MySQL nicht (und wenn, würde es viel zu viel Speicherplatz kosten).
      Alternativ könntest du deine Fließkommazahl als TEXT (oder VARCHAR) speichern und entsprechend um-casten. Allerdings würde ein cast zu float dann wieder zu 5.67e+07 führen, was aber an der Zahl per se nichts ändert.
      "A common mistake that people make
      when trying to design something completely foolproof
      is to underestimate the ingenuity of complete fools.
      "
      >>> Douglas Adams, Mostly Harmless
      -------------------------------------------------------
      Techcrawler.de | JaMT | deCHK | Extra-Bonus-Shopping.de | Scour

      Comment


      • #4
        ein equivalent zum Java-typischen BigFloat gibt es unter MySQL nicht (und wenn, würde es viel zu viel Speicherplatz kosten).
        Aha Speicherplatz. Aber den Wert als Text abzuspeichern ist dann ok?

        Ich würde mal DECIMAL als Datentyp verwenden.

        Dim
        Zitat Tom Kyte:
        I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

        Comment


        • #5
          Originally posted by dimitri View Post
          Aha Speicherplatz. Aber den Wert als Text abzuspeichern ist dann ok?
          Ich weiß, worauf du hinaus willst, aber wenn ich die Daten als Text speichere, dann beträgt der Speicherbedarf <anzahldatensätzexgrößtertext>, wenn ich das ganze als BigFloat speichern würde wäre es mehr, da der BigFloat einen Wert x speichern müsste (z.B. 2^2048 Zeichen) und dies dann mal Anzahl der Datensätz (egal wie lang der längste BigFloat deiner Tabelle nun wäre, es würde immer 2^2048xDatensätze Speicher benötigt).
          Aber ich lasse mich da gern belehren, obwohl das ganze hier nicht hingehört und - da es keinen BigFloat gibt - es auch recht akademisch wird.
          "A common mistake that people make
          when trying to design something completely foolproof
          is to underestimate the ingenuity of complete fools.
          "
          >>> Douglas Adams, Mostly Harmless
          -------------------------------------------------------
          Techcrawler.de | JaMT | deCHK | Extra-Bonus-Shopping.de | Scour

          Comment


          • #6
            Das kommt drauf an, wie man den Datentyp implementiert. Man kann ihn zum einen als festen Datentyp ablegen. Also so wie Du gesagt hast binär mit imer dem gleichen Speicherbedarf. Hat Performancevorteile wenn man aufwändige Berechnungen damit anstellen möchte.
            Man kann aber auch einen dynamischen Datentyp implementieren, bei dem die Zahl als Potenz abgelegt wird (getrennt nach Mantisse und Exponent). Dann hat man einen Datentyp, welcher einen dynamische Platzverbrauch besitzt.

            Die Klasse BigFloat ist mir in Java übrigends nicht bekannt.

            Dim
            Zitat Tom Kyte:
            I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

            Comment


            • #7
              Originally posted by dimitri View Post
              Die Klasse BigFloat ist mir in Java übrigends nicht bekannt.
              Korrekt gesagt heißt das Ding BigDecimal
              http://java.sun.com/j2se/1.5.0/docs/...igDecimal.html
              ich hatte das aus dem Kopf rekonstruiert (hab nun ein Jahr kein Java mehr gemacht).

              Aber kommen wir wieder zurück zum Thema...
              "A common mistake that people make
              when trying to design something completely foolproof
              is to underestimate the ingenuity of complete fools.
              "
              >>> Douglas Adams, Mostly Harmless
              -------------------------------------------------------
              Techcrawler.de | JaMT | deCHK | Extra-Bonus-Shopping.de | Scour

              Comment


              • #8
                @anno,

                in einem Computer wird alles durch Bits (gesetzt oder nicht gesetzt)= binär dargestellt, ob das jetzt Zahlen sind oder Text. Alles andere ist Defibitionssache (und auch das ist binär).
                docendo discimus

                Comment

                Working...
                X