Вы на самом деле отличная иллюстрация того, почему нам нужен десятичный тип.Типы с плавающей точкой не содержат точного представления числа, за исключением нескольких чисел, которые соответствуют определенным требованиям.По своей природе это приближение.Таким образом, число, которое вы видите, является близким приближением к желаемому.
Десятичное число - это тип с фиксированной точкой, который дает точное представление, а недостатком является то, что у него нет динамического диапазона, который есть у двойного.1003 *
Однако решение вашей проблемы - просто использовать правильный тип в вашей базе данных.Предполагая, что вы используете SQL Server, вам нужен десятичный тип:
http://msdn.microsoft.com/en-us/library/ms187746.aspx