查看渲染额外小数位

时间:2014-06-11 16:07:39

标签: c# asp.net asp.net-mvc

我正在开发一个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#}")]

提前致谢!

3 个答案:

答案 0 :(得分:2)

您可以使用Math.Round()将数字舍入到2位小数。

像:

@Html.TextBox("OriginalContractAmt", Model == null ? 0 : Math.Round(Model.OriginalContractAmt,2), new { @readonly = true })

如果您不想向上舍入或向下舍入,则可以使用truncate,如Hans Passant所述:

Truncate Two decimal places without rounding

答案 1 :(得分:1)

你可以像这样更新,虽然感觉有点像黑客:

@Html.TextBox("OriginalContractAmt", Model == null ? 0 : Decimal.Round(Model.OriginalContractAmt, 2), new { @readonly = true })

我假设四舍五入会很好,因为无论如何你都会失去回发的精确度。

答案 2 :(得分:1)

你指定错误的面具:

  • 0是必修数字
  • #是可选数字

因此,此掩码{0:0.0#}中的小数位数为:

  • 0:1必填小数点
  • #:1个可选的小数位

所以,你的面具应该是{0:0.00},即两个强制小数位。