2016-07-08 6 views
0

Ich habe ein SSIS-Projekt, das eine CSV-Datei in eine SQL-Tabelle lädt. Während das Feld mit zwei Dezimalziffern in eine float Spalte geladen wird, erhöht es die Anzahl der Ziffern und ändert den Spaltenwert.SQL Server SSIS erhöht die Anzahl der Ziffern beim Laden float Feld

Als Beispiel ist der csv-Feldwert 173.76, aber der Tabellenwert ist 173.759994506836.

Wie kann das passieren?

CSV-Verbindungseigenschaften sind;

  • Locale: Türkisch (Türkei)
  • Codepage: 1252
  • Daten-Typ: float [DT_R4]
+0

Verwenden Sie nicht 'FLOAT' in SQL Server - verwenden Sie' DECIMAL (p, s) ', um genaue Zahlen zu haben ..... –

+0

Danke marc_s, ich werde es tun. –

Antwort

1

Der float Datentyp ist eine Annäherung. Entweder ändern Sie Ihren Datentyp in einen genaueren oder - konvertieren Sie den Wert während des Imports in nn.nnn.

+1

Danke für deine Antwort. Es ist mein Mangel an Wissen über den Fließkomma-Datentyp. Hier ist die Definition von wikipedia [link] (https://en.wikipedia.org/wiki/Floating_point) –