我创建了使用EF的控制台应用程序。我有模型,其中有一些浮点变量。在我的数据库中,我也使用FLOAT。SQL Server更改float的值
在C#我有这个值:3,3 其插入到我的数据库有值后:3,29999995231628
为什么会发生?
我创建了使用EF的控制台应用程序。我有模型,其中有一些浮点变量。在我的数据库中,我也使用FLOAT。SQL Server更改float的值
在C#我有这个值:3,3 其插入到我的数据库有值后:3,29999995231628
为什么会发生?
FLOAT
数据类型不是精确的数据类型。如果你需要精确的精度,那么你应该使用DECIMAL
或NUMERIC
。
这是因为FLOAT
是一个近似的数字数据类型。相反,您可以使用DECIMAL
或NUMERIC
。
对于详细的解释,检查此SO交: Difference between numeric, float and decimal in SQL Server
的'FLOAT'数据类型不是一个确切的数据类型。如果你需要精确的精确度,那么你应该使用'DECIMAL'或'NUMERIC'。 –
添加一个答案,我会接受它。感谢您的信息@TomH – Icet
[在十进制,浮点数和浮点数之间的区别?](http://stackoverflow.com/questions/618535/difference-between-decimal-float-and-double-in-net ) – user1666620