none
Double-/Floatwert wird bei der Übernahme in Access und SQL Server verändert RRS feed

  • Frage

  • Hallo,

    ich habe eine Access 2010 und eine SQL-Server 2008 R2 Datenbank.

    In die Access Datenbank lese ich in eine Tabelle Werte aus einer Textdatei ein, Teile dieser Daten werden per SSIS Paket auch in eine SQL-Server Tabelle geschrieben.
    Bei einem Feld, in Access Double in SQL Server Float, habe ioch bei manchen Zahlen unterschiedlich viele Nachkommastellen.

    Nach Access wird beispielsweise korrekt 394,12 übernommen aber in SQL-Server steht dann 394,119995117188.

    Wenn ich mir die entsprechenden Werte im SSIS-Paket anzeigen lasse ist dieses Problem noch nicht vorhanden, da habe ich immer nur zwei Nachkommastellen.

    Hat jemand eine Idee, wie ich dieses Problem in den Griff bekomme?

    Gruß

    Cheapy



    Montag, 9. November 2015 06:43

Alle Antworten

  • Hallo Cheapy,
    float ist ein ungefährer Zahlendatentyp für numerische Gleitkommadaten.  Gleitkommadaten sind Näherungswerte, deshalb können nicht alle Werte im Bereich des Datentyps exakt dargestellt werden.

    Siehe auch: float und real

    Da ist sicherlich noch eine Konvertierung im SSIS-Paket dazwischen gekommen.

    Besser (weil genauer) wäre sicherlich die Verwendung von numeric oder decimal.


    Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu


    Montag, 9. November 2015 07:22
    Beantworter
  • Hi,
    eine gebrochene Zahl (Ziffern hinter Komma) lässt sich nicht in jedem Fall in eine Mantisse mit begrenzter Bitanzahl konvertieren. Als Beispiel kann 1/3 (ein Drittel) dienen, was sich auch nicht wegen der Periode in eine Zahl mit begrenzter Ziffernzahl hinter dem Komma umwandeln lässt (0,3333333333..). Genau so verhält es sich bei gebrochenen Zahlen wegen der begrenzten Länge der Mantisse. Aus diesem Grund sollten entweder ganze Zahlen mit Kommastelle (Decimal) oder Rundung bei der Anzeige genutzt werden.

    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks
    Kommas richtig setzen!
    Schüler sagen, Lehrer haben es gut.
    Schüler, sagen Lehrer, haben es gut

    Montag, 9. November 2015 08:05