ASP.NET MVC中EJ Grid的Double类型列格式化问题(保留3位小数)
ASP.NET MVC中EJ Grid的Double类型列格式化问题(保留3位小数)
嘿,看你已经搞定了日期时间列的格式化,现在想处理double类型列,实现类似Math.round(x, 3)保留三位小数的效果对吧?我给你两种常用的解决方案:
方案一:使用内置数值格式化字符串
EJ Grid支持标准的.NET数值格式化语法,直接用{0:N3}就能实现四舍五入保留三位小数的效果,和你用Format("N2")的逻辑完全一致,只是把位数从2改成3就行。代码示例如下:
col.Field("YourDoubleColumn").HeaderText("数值列").Format("{0:N3}").Add();
- 这里的
N3会自动帮你完成四舍五入,还会添加千位分隔符(比如1234.5678会变成1,234.568) - 如果不需要千位分隔符,换成
{0:F3}就可以了,它同样会四舍五入保留三位小数,但不会加千位分隔符(比如1234.5678会变成1234.568)
方案二:自定义客户端格式化函数(完全匹配Math.round(x,3))
如果你想完全通过Math.round来控制逻辑,也可以用EJ Grid的ClientFormatFunction属性,自定义一个客户端函数来处理:
首先在页面的脚本里定义格式化函数:
function formatDoubleValue(value) { // 实现Math.round(x,3)的逻辑:先乘1000取整,再除以1000 return Math.round(value * 1000) / 1000; }
然后在列配置里引用这个函数:
col.Field("YourDoubleColumn").HeaderText("数值列").ClientFormatFunction("formatDoubleValue").Add();
这种方式更灵活,适合有特殊格式化需求的场景。
备注:内容来源于stack exchange,提问作者Владимир
相关产品推荐
相关产品推荐

