从 .NET 实体框架添加时,0.3 在 SQL Server 中转换为 0.300000011920929



我在SQL Server中有一个表,其中有一列数据类型为float。我编写了一个用于插入记录的存储过程,它也接受参数作为float

但是,实体框架生成了数据类型为double的方法。因此,当我从 .NET 客户端添加 0.3 时,它更改为 0.300000011920929,但是我需要添加我添加的确切值 0.3。

有什么想法可以解决这个问题吗?

谢谢。

在 SQL 中,与其他语言一样,float数据类型不能用于存储精确基数的10个十进制值,因为float并不总是具有精确的表示形式 (https://blog.greglow.com/2018/01/15/sql-newbie-mistake-1-using-float-instead-decimal/)。尝试改用decimal数据类型,该数据类型在 SQL 中旨在精确存储十进制值。

参见 浮点数学坏了吗?

相关内容

  • 没有找到相关文章

最新更新