Announcement

Collapse
No announcement yet.

MSSQL 2000 falsche Werte durch zuviele Kommastellen

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

  • MSSQL 2000 falsche Werte durch zuviele Kommastellen

    Hallo,

    ich importiere Daten in einen MS SQL Server 2000. Es handelt sich um ein ganz normales Insert. Der Typ meines Feldes ist float.

    Wenn ich jetzt zb. eine Zahl 12,3 importiere wird mir diese Zahl als 12,299999999 in der Datenbank angezeigt.

    Kennt jemand einen Ursache für dieses Phänomen??

  • #2
    Hallo,

    das ist einfach so. Das ist die normale Ungenauigkeit von Float-Zahlen.
    Wenn Du den Wert exakt sehen willst, musst Du die Felder Deiner Datenbank
    mit Stellenangaben definieren. Z. B. Decimal(12,2).
    Was macht übrigens Deine andere Abfrage, wo Du gesagt hast, mein SQL-Statement müsste falsch sein?

    Gruß frauwue
    docendo discimus

    Comment


    • #3
      Probier mal den Insert in die Datenbank mit parametriesierten Abfragen.

      Comment


      • #4
        Hallo,

        beim Auslesen der Daten aus der Datenbank kann CAST(wert AS DECIMAL(10,2)) verwendet werden, um die Anzahl der Dezimalstellen (und somit die Rundung) den Anforderungen anzupassen

        [highlight=SQL]
        SELECT CAST(wert AS DECIMAL(10,2)) AS wert FROM dbo.UglyTable
        [/highlight]
        Zuletzt editiert von Andreas Kosch; 18.01.2008, 08:32.

        Comment


        • #5
          Danke für die Antworten.

          Ich glaube ich werde es aber doch mit Decimal anstelle von Float machen.

          @frauwue
          bzgl. http://entwickler-forum.de/showthread.php?t=45435
          Ich weiß noch immer nicht woran es lag. Es ist aber richtig, dass ich doppelte Werte in der DB hatte. Allerdings bekam ich als Abweichung ja eine Anzahl von 2 Datensätzen. In Wirklichkeit handelte es sich um über 30 Datensätze. Somit kann ich noch nicht erklären woran es genau lag. Jedenfalls mache ich das jetzt anders.

          4 Tabellen. AB, EK, VB, EB
          Datensätze aus AB sollten nicht in EK vorkommen. Darum mache ich jetzt einen OUTER JOIN von AB und EK.
          Danach mache ich einen OUTER JOIN dieser VIEW mit EB wobei entweder AB oder EK in der Tabelle EB vorkommen können.
          Zuletzt Noch ein JOIN mit VB wo ebenso AB oder EK vorkommen können.

          Jetzt habe ich eine große Tabelle mit allen Datensätzen. Diese View ziehe ich mir über ein Insert into <tab> select .... in eine richtige Tabelle.

          Comment

          Working...
          X