我必须在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。
答案 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); } }
希望这有帮助