2013-04-22 12 views
7

Ich habe einen Schwimmer variable-field1 in 2 tables-table1 & table2. Wenn ich die Tabelle abfrage und die Werte des Feldes überprüfe, sehen beide identisch aus, aber wenn ich ihren Unterschied finde, gibt es einen Unterschied statt Null.Vergleichen von 2 Float-Werte in SQL Server

Field1(Table1) value---84.4660194174757 
Field2(Table2) value---84.4660194174757 

Differnce---1.4210854715202E-14 

Warum sollte ich dieses Problem bekommen?

+1

Nun zu begrenzen, warum sind Sie mit 'FLOAT' statt' DECIMAL'? –

+0

Die Daten werden aus einer Kalkulationstabelle exportiert und sqlserver erkennt sie automatisch mit FLOAT .. – user1050619

+2

'FLOAT' ist ein ungefährer Datentyp, daher ist diese Art von Unterschied zu erwarten – Lamak

Antwort

13
  • Verwenden ROUND die Nachkommastellen
  • Verwendung ABS(value1-value2) < 0.00001 mit einem geeigneten Wert
  • nicht verwenden float
+0

Sind Sie einer der Gründer dieser Seite? Ich frage, weil dein Ruf so hoch ist! – whatwhatwhat

Verwandte Themen