我有十进制?量
在我的模型中,我的值为@ item.Sales,我试图将其写为@ item.Sales.ToString(“F2”)。
我有消息错误错误1方法'ToString'没有重载需要1个参数
如何实现上述目标
答案 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")
之前不检查空值,则代码将在运行时中断。