在数据库中浮动到?在.NET中
如果在MSSQLServer中有一个浮点数,那么在.NET中将其映射到什么在数据库中浮动到?在.NET中,.net,sql-server,types,floating-point,double,.net,Sql Server,Types,Floating Point,Double,如果在MSSQLServer中有一个浮点数,那么在.NET中将其映射到什么 你能把它转换成双精度还是会丢失数字?C#有一个浮点数类型,但它也能转换成双精度。据我回忆,大多数ORM工具都会把它映射成十进制类型,它不会像double或float那样丢失精度。SQLServerfloat和C#/VBdouble具有相同的表示形式。这是正确的映射。您不想做的是将SQL Serverfloat映射到C#/VBfloat,因为这可能会导致精度损失。SQL Serverreal映射到C#/VBfloat T-
你能把它转换成双精度还是会丢失数字?C#有一个浮点数类型,但它也能转换成双精度。据我回忆,大多数ORM工具都会把它映射成十进制类型,它不会像double或float那样丢失精度。SQLServer
float
和C#/VBdouble
具有相同的表示形式。这是正确的映射。您不想做的是将SQL Serverfloat
映射到C#/VBfloat
,因为这可能会导致精度损失。SQL Serverreal
映射到C#/VBfloat
T-SQL浮点和实数类型定义可在中找到。C#双定义也可以在中找到,浮点也可以。它取决于SQL浮点的大小。对于与float(53)等价的普通“float”,您需要使用C#double。对于浮点数(24)或更低的浮点数,C浮点数就足够了,或者双精度浮点数也可以。由Microsoft XSD生成的自动代码将SQL浮点数(默认浮点数)转换为C浮点数。
所以你可以说这不是什么大错误
直到您使用具有默认大小的浮点。签出:
- 有关SQL Server和.Net之间的数据类型映射的完整参考
msdn文档的更新版本:错误,尽管您可以将任何SQL server浮点值映射到C#double,但无法将任何C#double映射到SQL server浮点值。。。但它通常适用于“正常”的大/小数字这并不是严格正确的-即使是实/浮(24)。SQL Server没有标准IEEE754(C#/VB.NET)规则支持的NaN或+/-Inf的概念。这应该是正确的答案。谢谢你的链接。现在有一个更新版本。谢谢@MatthisKohli-现在添加了答案的新链接