我遇到一个问题,在我的视图中使用asp-for标签帮助程序时,我失去了小数位。似乎总是四舍五入到小数点后两位,而我想让它四舍五入到小数点后三位(在这种情况下)。
这是我表单的视图,如您所见,实际上并没有什么特别的事情(asp-has-error
标签帮助程序是该项目的自定义标签帮助程序):
<div class="form-group row">
<label asp-for="RatePercentage" class="col-lg-4 col-form-label"></label>
<div class="col-lg-8">
<input asp-for="RatePercentage" asp-has-error="@Html.HasErrorFor(m => m.RatePercentage)" class="form-control"/>
</div>
</div>
有什么想法可以让我显示3个小数位吗?
答案 0 :(得分:1)
这只是默认设置。您可以使用DisplayFormat
属性将其设置为任意值:
[DisplayFormat(DataFormatString = "{0:[format]}", ApplyFormatInEditMode = true)]
public decimal RatePercentage { get; set; }
[format]
是您想要的格式字符串。参见Standard Numeric Format Strings和Custom Numeric Format Strings。
答案 1 :(得分:1)
阻止标记帮助程序应用此默认格式的另一种方法是显式指定input
元素的type
属性并将其分配为text
,如下所示:
<input type="text" asp-for="RatePercentage" …/>
然后,在输入控件中获得“原始”十进制值,您可以使用编辑掩码或以其他方式自行设置其格式,而不会自动丢失否则会发生的值的精度。