C'est parce que vous utilisez le type de base de données float.
Float ne doit pas être utilisé pour représenter des valeurs qui nécessitent de la précision, car elles sont stockées sous forme d'approximations, différentes manipulations peuvent vous donner des résultats différents.
Dans le serveur sql, vous pouvez utiliser des types de données décimaux et numériques pour une précision numérique :http ://msdn.microsoft.com/en-us/library/ms187746.aspx