Dzieje się tak, ponieważ używasz bazy danych typu float.
Float nie powinno być używane do reprezentowania wartości wymagających precyzji, ponieważ są one przechowywane jako przybliżenia, różne manipulacje mogą dać różne wyniki.
Na serwerze sql możesz używać dziesiętnych i numerycznych typów danych dla dokładności liczbowej:http://msdn.microsoft.com/en-us/library/ms187746.aspx