2

我必须在 SQL Server 2005 中设置小数点后 3 位。我只能从模型部分设置它。但是在 sql server 中设置Salary属性的数据类型是decimal

 When I set like

         public decimal Salary { get; set; }

它将像 21000.000 而不是 21000 一样保存到数据库中。如果我输入 30000.75,那么它将被保存到 30000.750。

4

4 回答 4

1

我也陷入了同样的境地,终于找到了解决办法。您可以覆盖 DbContext.OnModelCreating() 方法并配置精度

公共类 ApplicationDbContext : IdentityDbContext
{
    受保护的覆盖无效 OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity().Property(c => c.AssociationFee).HasPrecision(18, 3);
    }
}

希望这可以帮助

于 2016-03-10T10:59:52.230 回答
0

试试这个,你也必须在编辑模式下设置。

 [DisplayFormat(DataFormatString = "{0:n3}", ApplyFormatInEditMode = true)]
 public decimal Amount { get; set; }
于 2013-04-19T08:24:07.743 回答
0

将此属性应用于模型中的属性:

[DisplayFormat(DataFormatString = "{0:#,##0}")]
于 2013-04-19T07:40:08.070 回答
0

您可以使用 MVC DisplayFormat 属性:

DisplayFormat 未应用于十进制值

或者出于显示目的,您可以使用字符串并执行以下操作:

Salary.ToString("F");

这将导致输出:30000.75

或者:

Salary.ToString("N");

这将导致输出:30,000.75

于 2013-04-19T07:40:21.410 回答