You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让@Html.TextBoxFor()不使用科学计数法显示数字?

解决@Html.TextBoxFor()渲染double类型显示科学计数法的问题

以下几种方案可以让你保留使用@Html.TextBoxFor()的同时,避免小数值显示为科学计数法:

  • 给ViewModel属性添加格式化特性
    在对应double类型的属性上标注DisplayFormat特性,指定格式字符串并开启编辑模式下的格式应用:

    public class YourViewModel
    {
        // N8表示保留8位小数,可根据需求调整位数(如N6、N10)
        [DisplayFormat(DataFormatString = "{0:N8}", ApplyFormatInEditMode = true)]
        public double SmallDecimalValue { get; set; }
    }
    

    之后视图中正常使用@Html.TextBoxFor(m => m.SmallDecimalValue)即可按指定格式渲染数值。

  • 在TextBoxFor调用时直接指定格式
    无需修改ViewModel,直接在视图层调用TextBoxFor的重载方法,传入格式字符串:

    <!-- 这里N8为保留8位小数,可按需调整 -->
    @Html.TextBoxFor(m => m.SmallDecimalValue, "{0:N8}", new { @class = "form-control" })
    

    这种方式适合需要针对单个输入框单独设置格式的场景。

  • 全局统一设置double类型的显示模板(适合大量属性的场景)
    在项目的~/Views/Shared/EditorTemplates目录下创建Double.cshtml文件,内容如下:

    @model double?
    @Html.TextBox("", Model.HasValue ? Model.Value.ToString("N8") : "", ViewData)
    

    之后所有使用@Html.TextBoxFor()绑定double类型的输入框,都会自动应用这个模板的格式规则,一次性解决大量属性的显示问题。

内容的提问来源于stack exchange,提问作者Valery

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:05:03