ASP.NET MVC 4将3位小数值保存到SQL Server 2005

时间:2013-04-19 07:34:09

标签: sql asp.net-mvc-4

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

 When I set like

         public decimal Salary { get; set; }

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

4 个答案:

答案 0 :(得分:0)

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

[DisplayFormat(DataFormatString = "{0:#,##0}")]

答案 1 :(得分:0)

您可以使用MVC DisplayFormat属性:

DisplayFormat not getting applied on decimal value

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

Salary.ToString("F");

哪会产生输出:30000.75

或者:

Salary.ToString("N");

哪会产生输出:30,000.75

答案 2 :(得分:0)

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

 [DisplayFormat(DataFormatString = "{0:n3}", ApplyFormatInEditMode = true)]
 public decimal Amount { get; set; }

答案 3 :(得分:0)

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

public class ApplicationDbContext : IdentityDbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity().Property(c => c.AssociationFee).HasPrecision(18, 3);
    }
}

希望这有帮助