RazorEngine模板调用函数语法求助:double.ToString格式化问题
解决RazorEngine模板中调用double.ToString指定格式的问题
我之前用RazorEngine的时候也碰到过类似的麻烦,它的官方文档确实不够详尽,但其实调用.NET原生方法的语法和标准Razor很接近,只是有些细节得留意下。
针对你要把double值四舍五入到百分位(也就是保留两位小数)的需求,下面是正确的用法:
基本直接调用
如果你的模板模型里对应的属性已经是double类型,直接在模板里这么写就行:
@Model.YourDoubleValue.ToString("N2")
这里的"N2"格式字符串会自动帮你四舍五入到两位小数,比如123.456会输出123.46,78.9会输出78.90。
要是你需要把数值转换成百分比格式(比如0.1234变成12.34%),就换成"P2"格式字符串:
@Model.YourDoubleValue.ToString("P2")
处理类型转换问题
如果模型中的属性是object类型或者其他可转成数值的类型,记得先强制转换成double再调用方法,避免编译报错:
@(((double)Model.YourValue).ToString("N2"))
可选:空值判断
如果数值可能为null,可以加个空判断防止运行时出错:
@(Model.YourDoubleValue != null ? ((double)Model.YourDoubleValue).ToString("N2") : "0.00")
另外要注意,RazorEngine编译模板时对类型检查很严格,确保你传给模板的模型类型和模板里使用的类型匹配,这样调用方法时就不会出问题啦。
内容的提问来源于stack exchange,提问作者Justin
相关产品推荐
相关产品推荐

