SQL float列能否用于保存C#双精度值?

SQL float列能否用于保存C#双精度值?,c#,sql-server,casting,C#,Sql Server,Casting,我的代码中有一个双变量,在进行一些计算后,我需要将该数字保存到SQL浮点列中,但当代码执行时,会出现以下异常: double value = expression.calculate(); point = new Point { DefinitionId = definition.Id, Time = day, Value = value }; _context.Points.Add(point); _context.SaveChanges(); 我应该在保存之

我的代码中有一个双变量,在进行一些计算后,我需要将该数字保存到SQL浮点列中,但当代码执行时,会出现以下异常:

double value = expression.calculate();

point = new Point
{
    DefinitionId = definition.Id,
    Time = day,
    Value = value
};

_context.Points.Add(point);
_context.SaveChanges();

我应该在保存之前对值进行四舍五入吗

更新:

以下是Point类:

 public class Point
    {
        [Key]
        public int Id { get; set; }

        public int DefinitionId { get; set; }

        [ForeignKey("DefinitionId")]
        public Definition Definition { get; set; }

        public DateTime Time { get; set; }

        public double Value { get; set; }

    }
这是发生异常时的值:

SQL版本:13.0.4001.0


.Net实体框架:Microsoft.EntityFrameworkCore.SqlServer 2.0.2

类点看起来像什么问题不在于是否应舍入,因为它取决于应用程序要求的准确性。是否必须将双精度转换为浮点?是的,是的。或者,您也可以更改数据库中的数据定义。可能是浮点(25)
float
列是一种双精度浮点类型,它可以保存所有存储在
double
中的值C#,但非规范数字除外。屏幕截图中的数字不是一个非规范数字,因此应该可以使用。SQL Server的哪个版本,.NET/Entity Framework的哪个版本?您可能还想连接一个探查器,看看是否可以在
RPC:Starting
事件中看到任何有趣的内容(如果它启动的话)。