【问题标题】:Display decimal without trailing zeros in MVC view在 MVC 视图中显示不带尾随零的小数
【发布时间】:2016-02-10 14:23:27
【问题描述】:

如何在逗号后显示带有 3 个零的小数,而不是尾随? 我的代码是

<td>@decimal.Parse(item.QuantityKg.ToString()).ToString("G29")</td>

【问题讨论】:

  • ToString("N3") 怎么样?
  • QuantityKg是什么类型?
  • @JurijusAmbros 那么为什么要生成它的字符串表示形式并将其解析为decimal,如果它已经 decimal?为什么不直接使用&lt;td&gt;@item.QuantityKg.ToString("N3")&lt;/td&gt;
  • String.Format("{0:N3}",item.QuantityKg) 将与decimaldecimal? 一起使用。通常,即使类型的特定 ToString() 不允许格式化字符串,String.Format 也可以工作

标签: c# .net model-view-controller


【解决方案1】:

由于您的QuantityKgdecimal? 而不是decimal,因此您可以使用Value property 并使用"N" format specifier3 精度。

如果除此之外一切都ok,这应该适用于您的情况;

<td>@item.QuantityKg.Value.ToString("N3")</td>

但是如果QuantityKgnull,这会抛出InvalidOperationException,所以使用string.Format 会更好地捕捉这种情况,如果它是null,则生成空字符串作为Panagiotis mentioned

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

【讨论】:

  • 或者使用String.Format,这样一个空值将导致一个空字符串而不是一个YSOD。它也不关心值是decimal 还是decimal?
  • @PanagiotisKanavos 是的,这似乎更好。添加了我的答案。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 2011-03-07
  • 2019-11-26
  • 1970-01-01
相关资源
最近更新 更多