如何转换以下小数?字符串(“F2”)

时间:2011-02-28 09:30:10

标签: c# asp.net-mvc

我有十进制?量

在我的模型中,我的值为@ item.Sales,我试图将其写为@ item.Sales.ToString(“F2”)。

我有消息错误错误1方法'ToString'没有重载需要1个参数

如何实现上述目标

4 个答案:

答案 0 :(得分:12)

如果它是可以为空的小数,则需要首先获得不可为空的值:

@item.Sales.Value.ToString("F2")

当然,如果@item.Sales实际上是空值,则会抛出异常,因此您需要首先检查它。

答案 1 :(得分:3)

您可以创建一个Extension方法,以便主代码更简单

  public static class DecimalExtensions
  {
    public static string ToString(this decimal? data, string formatString, string nullResult = "0.00")
    {
      return data.HasValue ? data.Value.ToString(formatString) : nullResult;
    }
  }

你可以这样称呼它:

  decimal? value = 2.1234m;
  Console.WriteLine(value.ToString("F2"));

答案 2 :(得分:1)

if( item.Sales.HasValue )
{
    item.Sales.Value.ToString(....)
}
else
{
 //exception handling
}

答案 3 :(得分:0)

使用一元?操作符仅在有对象时运行.ToString()

@item.Sales?.ToString("F2")

或使用双引号??运算符因此使其不可为空:

@((item.Sales??0).ToString("F2"))

这比@item.Sales.Value.Tostring("F2")更好,因为如果您在使用.ToString("F2")之前不检查空值,则代码将在运行时中断。