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

ASP.NET Core Razor视图中如何格式化数字?

解决数字格式化问题的可行方案

你之前尝试的格式化代码无效,大概率是AccRaseed的类型不是数值类型(比如是字符串),或者当前线程区域设置不支持千分位格式,以下是几种直接有效的解决办法:

1. 类型转换后格式化(针对字符串类型的数字)

如果AccRaseed是字符串存储的数字,先转换为数值类型再格式化,同时兼容转换失败的场景:

<td>
    @(decimal.TryParse(item.AccRaseed, out var num) ? num.ToString("N") : item.AccRaseed)
</td>

2. 模型添加特性实现自动格式化(推荐)

在模型类的AccRaseed属性上标注DisplayFormat特性,后续使用Html.DisplayFor就能自动输出千分位格式,代码更整洁:

public class YourModel
{
    public string AccName { get; set; }
    
    [DisplayFormat(DataFormatString = "{0:N}", ApplyFormatInEditMode = false)]
    public decimal AccRaseed { get; set; } // 确保属性类型为decimal/double等数值类型
}

视图保持原有代码即可:

<td>
    @Html.DisplayFor(modelItem => item.AccRaseed)
</td>

3. 强制指定区域文化格式化

如果是区域设置导致的格式不生效,强制使用支持千分位的文化(如en-US):

<td>
    @item.AccRaseed.ToString("N", System.Globalization.CultureInfo.GetCultureInfo("en-US"))
</td>

4. 直接输出格式化字符串(替代DisplayFor)

放弃Html.DisplayFor,直接输出格式化后的内容(前提是AccRaseed为数值类型):

<td>
    @string.Format("{0:N}", item.AccRaseed)
</td>

内容的提问来源于stack exchange,提问作者M.J

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:12:08