【问题标题】:what decimal value got rounded in Razor view?在 Razor 视图中四舍五入的十进制值是多少?
【发布时间】:2013-10-17 00:50:17
【问题描述】:

我的模型包含一个小数列,我在 Controller 操作中检查了它的十进制值,如下所示:

0.69874
0.78562

奇怪的是,当它们出现在网页上时,它们会被四舍五入并变成0.70

我的模型类具有以下属性:

  public virtual decimal Rate { get; set; }

内视图代码为:

<td>@(Html.DisplayFor(m=>row.Rate))</td>

您能否指导一下为什么它会自动旋转以及我应该做些什么来阻止这种情况,我想显示真正的价值。

非常感谢您的指导和帮助。

【问题讨论】:

  • 您列出的属性是虚拟的——它是否在派生类中被覆盖,可能应用了显示属性?
  • 查看这篇文章:stackoverflow.com/questions/7312529/… -- 在 Model 属性上利用 DisplayFormat 属性

标签: c# .net asp.net-mvc-3 asp.net-mvc-4 razor


【解决方案1】:

尝试在相关属性上添加 Display 属性

[DisplayFormat(DataFormatString = "{0:F3}")]
public virtual decimal Rate { get; set; }

这里有更多格式选项 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.dataformatstring.aspx

【讨论】:

  • 我试过这个但得到这个错误:模板只能用于字段访问、属性访问、单维数组索引或单参数自定义索引器表达式。请提供任何指导
  • 谢谢,它成功了。你是冠军。在结束问题之前,我可以问你两件事。 1.为什么值会自动四舍五入? 2. 为什么我不能在 razor 视图中使用 .tostring()。非常感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多