Blazor中能否将decimal绑定到文本框并自动移除尾部零?
实现方案
无需自定义InputNumber控件即可实现自动移除尾部零的格式化效果,两种原生支持的方案如下:
方案1:直接使用InputNumber原生Format属性(.NET 5+适用)
.NET 5 及以上版本的Blazor原生InputNumber组件已内置格式化参数,直接指定格式化字符串即可:
<InputNumber @bind-Value="你的Decimal字段" Format="0.####" />
0.####格式规则:最多保留4位小数,自动删除末尾无意义的零,整数场景直接展示整数、1位小数场景仅展示1位,完全匹配你的精度配置需求。- 如果需要更通用的紧凑输出,也可以使用
Format="G29",会自动选择最短的表示形式,不会出现多余的尾部零。
方案2:通过数据注解配置格式化(全版本适用)
如果是.NET 5以下版本,直接给绑定的decimal属性加DisplayFormat注解即可:
using System.ComponentModel.DataAnnotations; [DisplayFormat(DataFormatString = "{0:0.####}", ApplyFormatInEditMode = true)] public decimal TargetDecimalValue { get; set; }
绑定的时候直接用原生InputNumber组件即可,框架会自动应用配置的格式化规则:
<InputNumber @bind-Value="TargetDecimalValue" />
内容的提问来源于stack exchange,提问作者Chris Searles
相关产品推荐
相关产品推荐

