C# .NET核心模型正在舍入我的十进制值

C# .NET核心模型正在舍入我的十进制值,c#,.net-core-2.0,C#,.net Core 2.0,我有一个.NETCore2.0应用程序,它从API中提取数据,并试图将其保存到表cog_detail(使用模型COGTail) 其中一个值称为Lmn,当我检查cd中的值时显示为2.60895M(我在_context.cogdail.Add(cd);)上有一个断点) 但一旦它执行了保存,它将作为3保存在数据库中 SQL Server表的列为decimal(18,0),null 我的背景是: modelBuilder.Entity<Models.Cog.CogDetail>(entity

我有一个.NETCore2.0应用程序,它从API中提取数据,并试图将其保存到表cog_detail(使用模型COGTail)

其中一个值称为Lmn,当我检查cd中的值时显示为2.60895M(我在_context.cogdail.Add(cd);)上有一个断点)

但一旦它执行了保存,它将作为3保存在数据库中

SQL Server表的列为decimal(18,0),null

我的背景是:

modelBuilder.Entity<Models.Cog.CogDetail>(entity =>
{
  entity.HasKey(e => new { e.Test_ID, e.TCode }).HasName("PK_cog_detail");

  entity.ToTable("cog_detail", "cog");

  entity.Property(e => e.Test_ID)
    .HasColumnName("test_id")
    .HasColumnType("int");

  entity.Property(e => e.TCode)
    .HasColumnName("tcode")
    .HasColumnType("varchar(10)");

  entity.Property(e => e.Lmn)
    .HasColumnName("lmn")
    .HasColumnType("decimal(18, 0)");

});
modelBuilder.Entity(Entity=>
{
HasKey(e=>new{e.Test_ID,e.TCode}).HasName(“PK_cog_detail”);
实体。可转帐(“cog_详情”、“cog”);
entity.Property(e=>e.Test\u ID)
.HasColumnName(“测试id”)
.HasColumnType(“int”);
Property(e=>e.TCode)
.HasColumnName(“tcode”)
.HasColumnType(“varchar(10)”);
entity.Property(e=>e.Lmn)
.HasColumnName(“lmn”)
.HasColumnType(“十进制(18,0)”);
});

你知道为什么它是四舍五入而不是保持在2.60895吗?

回答由Flydog57和Train在评论中提供


列类型应该是18,6-而不是18,0,因为在小数点右侧没有数字

答案由Flydog57和Train在注释中提供


列类型应该是18,6-而不是18,0,因为小数点右侧没有数字

不是
decimal(18,0)
表示“总共18位,小数点右侧没有数字”<代码>18,0表示您总共有18位小数,小数点右侧有0个数字。这基本上是一个18位数的整数。先解决这个问题,看看会发生什么。你完全正确。。我惊讶地错过了。现在就去测试,成功了。。我花了多少时间盯着错误的地方来解决这个问题!谢谢大家,我会记下的complete@DavidG无论如何,它应该以打字错误的形式关闭。
decimal(18,0)
不是意味着“总共18位数字,小数点右边没有数字”吗<代码>18,0表示您总共有18位小数,小数点右侧有0个数字。这基本上是一个18位数的整数。先解决这个问题,看看会发生什么。你完全正确。。我惊讶地错过了。现在就去测试,成功了。。我花了多少时间盯着错误的地方来解决这个问题!谢谢大家,我会记下的complete@DavidG无论如何,它应该以打字错误的形式关闭。太晚了,哦。我在达拉斯。Tje温度一夜之间下降了40华氏度。我可能用帽子太晚了,哦,好吧。我在达拉斯。Tje温度一夜之间下降了40华氏度。我可以用这顶帽子
modelBuilder.Entity<Models.Cog.CogDetail>(entity =>
{
  entity.HasKey(e => new { e.Test_ID, e.TCode }).HasName("PK_cog_detail");

  entity.ToTable("cog_detail", "cog");

  entity.Property(e => e.Test_ID)
    .HasColumnName("test_id")
    .HasColumnType("int");

  entity.Property(e => e.TCode)
    .HasColumnName("tcode")
    .HasColumnType("varchar(10)");

  entity.Property(e => e.Lmn)
    .HasColumnName("lmn")
    .HasColumnType("decimal(18, 0)");

});