gpt4 book ai didi

c# - 从 C# 到 SQL Server 的精度损失

转载 作者:太空狗 更新时间:2023-10-29 20:33:44 25 4
gpt4 key购买 nike

这是我面临的一个问题,当从 C# Entity Framework 存储到 SQL Server 数据库时会导致精度损失。

  1. SQL Server 数据类型是 decimal(20, 15)
  2. 在 C# 中,属性定义为 public decimal AssignedGrossBudget { get;放; }
  3. 在 C# 中,变量 (AssignedGrossBudget) 的值是 34.09090909090909
  4. 但在 SQL Server 表中它是 34.090000000000000

有什么问题吗? (我正在使用 Entity Framework db.SaveChanges(); 和 SQLBulkCopy 将数据从 c# 存储到 SQL Server)

我想存储 34.09090909090909 而不是 34.090000000000000。

我通过直接插入表格进行了检查,它有效。

最佳答案

谢谢 Urril 和 Remus。

我在 Entity Framework 中做了如下更改:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<StationMapping>().Property(x => x.AssignedGrossBudget).HasPrecision(35, 15);

}

对于 SQL BulkCopy,我按照 Remus 的建议添加了数据类型。

SpotLookupTable.Columns.Add(new DataColumn("GrossBudget",typeof(decimal)));

它现在正在工作并且没有损失(或可忽略不计)。

干杯

关于c# - 从 C# 到 SQL Server 的精度损失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22782996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com