sql-server - Entity Framework 核心在 c# 中将 float(db 数据类型)转换为 double 时添加数字

标签 sql-server asp.net-core entity-framework-core double converters

我有一个 SQL 表,其中有两列“纬度”和“经度”,其值分别为 29.47731 和 -98.46272。 SQL Server 中的列数据类型为 float。

当我们使用 _context.Table.ToListAsync() 等 EF 核心检索记录时,它会检索记录,但是当它转换为 C# 等效 double 时?数据类型,它添加额外的数字,如 -98.4627199999999。

如何避免这种情况?它应该返回与数据库中相同的值。

最佳答案

SQL Float 和 C# Double 是不精确的数据类型,它们存储非常接近的数字,但通常不是精确的数字。如果您需要维护精确的值,您应该使用 SQL 数字数据类型,它允许您指定有效位数;虽然 C# Decimal 数据类型仍然不精确,但它将提供比 Double 更高的精度近似值。

关于sql-server - Entity Framework 核心在 c# 中将 float(db 数据类型)转换为 double 时添加数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63728906/

相关文章:

asp.net-core - Entity Framework 核心-相当于IN子句

c# - 将 EF Core 查询从 2.2 转换为 3.0 - async await

c# - EF Core ChangeTracker() 当前值和原始值对于修改后的实体是相同的

c# - Asp.Net Core 3.1 检索数据但未将其保存到数据库中

SQL查询;水平到垂直

java - 如何保护从 java 表单应用程序登录 SQL Server 的密码

c# - 运行 MSBuild 时发生内部故障 - 无法加载文件或程序集 System.Net.Primitives

json - NU1001 无法解析依赖项 Microsoft...>=1.0.0

c# - EF Core 继承问题(HasDiscriminator)

c# - EF 异常 : String or binary data would be truncated. 语句已终止。?