【问题标题】:Casting error in MVCMVC 中的转换错误
【发布时间】:2013-05-18 11:03:46
【问题描述】:

我正在开发一个 MVC 应用程序。使用剃刀语法。 我正在尝试从另一个值中删除一个值。

  @{
   double DeductedAmount1 = @Model.SanctionedAmount - @Model.DeductionAmount;         
  }

这显示错误为

不能隐式转换类型'double'? “加倍”。存在显式转换(您是否缺少演员表?)

问题已解决,感谢 Darren Davies

dAmount1 = (double)@Model.SanctionedAmount.Value - (double)@Model.DeductionAmount;

【问题讨论】:

  • 您正在尝试使用可为空的 double 执行数学运算。此处的值可能为空。如果是这样,则认为该操作无效。属性的实际类型是什么?

标签: c# .net asp.net-mvc asp.net-mvc-3 nullable


【解决方案1】:

使用double?

double? DeductedAmount1 = @Model.SanctionedAmount - @Model.DeductionAmount; 

看起来SanctionedAmountDeductionAmountnullable double 的类型

您也可以在 Nullable 双精度上使用 .Value。例如,如果 SanctionedAmountdouble? 类型,而 DeductionAmountdouble 类型,你可以这样做:

 double DeductedAmount1 = @Model.SanctionedAmount.Value - @Model.DeductionAmount;

您也可以使用cast

 double DeductedAmount1 = (double)@Model.SanctionedAmount.Value - (double)@Model.DeductionAmount;

【讨论】:

  • @user1650894 使用.Value - 检查我的编辑。您的变量之一是double? 类型,另一个是double 类型
【解决方案2】:

我会在你的可为空的 double 上使用 GetValueOrDefault,以防万一它为空

【讨论】:

    猜你喜欢
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 2013-09-29
    • 1970-01-01
    • 2017-08-20
    • 2011-02-20
    • 2012-05-07
    相关资源
    最近更新 更多