我正在开发一个ASP.NET MVC 4应用程序,我仍然是MVC的新手。我注意到当我使用Html.TextBox时,视图呈现额外的小数位,如下所示。
@Html.TextBox("OriginalContractAmt", Model == null ? 0 : Model.OriginalContractAmt, new { @readonly = true })
OriginalContractAmt属性是模型中的NotMapped字段,视图将值显示为479.4000。
我想强制它到两位小数。即479.40。我如何存档?尝试在模型中跟随它并没有任何区别。
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:0.0#}")]
提前致谢!
答案 0 :(得分:2)
您可以使用Math.Round()将数字舍入到2位小数。
像:
@Html.TextBox("OriginalContractAmt", Model == null ? 0 : Math.Round(Model.OriginalContractAmt,2), new { @readonly = true })
如果您不想向上舍入或向下舍入,则可以使用truncate,如Hans Passant所述:
答案 1 :(得分:1)
你可以像这样更新,虽然感觉有点像黑客:
@Html.TextBox("OriginalContractAmt", Model == null ? 0 : Decimal.Round(Model.OriginalContractAmt, 2), new { @readonly = true })
我假设四舍五入会很好,因为无论如何你都会失去回发的精确度。
答案 2 :(得分:1)
你指定错误的面具:
因此,此掩码{0:0.0#}
中的小数位数为:
所以,你的面具应该是{0:0.00}
,即两个强制小数位。