2013-04-22 2 views
7

У меня есть поплавок variable-field1 в 2 tables-table1 . Когда я запрашиваю таблицу и проверяю значения поля, они выглядят одинаково, но когда я нахожу их разницу, он дает разницу вместо нуля.Сравнение 2 значений поплавка в sqlserver

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

Differnce---1.4210854715202E-14 

Зачем возникает эта проблема?

+1

Ну, почему вы используете 'FLOAT' вместо' DECIMAL'? –

+0

Данные экспортируются из электронной таблицы, и sqlserver автоматически обнаруживает ее с помощью FLOAT .. – user1050619

+2

'FLOAT' - примерный тип данных, поэтому можно ожидать такого рода разницы – Lamak

ответ

13
  • Использование ROUND ограничить знаков после запятой
  • Используйте ABS(value1-value2) < 0.00001 с некоторым подходящим значением
  • Не используйте поплавок
+0

Вы один из основателей этого сайта? Я спрашиваю, потому что ваш представитель настолько высок! – whatwhatwhat

Смежные вопросы