【问题标题】:In .NET how do I convert a nullable int to a double? [duplicate]在 .NET 中,如何将可为空的 int 转换为 double? [复制]
【发布时间】:2017-03-13 19:16:23
【问题描述】:
subTotal += carts.Amount * product.Price;

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

【问题讨论】:

  • 您需要获取可为空的值(如果有的话)。
  • 您不应该使用双打作为货币代码。使用decimal
  • 存在显式转换。你忘了在你的表达中加入演员吗?真的不清楚你在问什么。 Stack Overflow 上有很多答案已经在讨论从 int 转换为 double 以及从可空值转换为不可空值(请参阅标记的重复值)。如果您有许多其他帖子没有回答的问题,请解释:提供一个很好的minimal reproducible example 展示您尝试过的内容,并具体描述您尝试过什么以及您做了什么遇到麻烦了。

标签: c# .net


【解决方案1】:

您可以使用Convert.ToDouble(x),其中 x 是 int 值。查看https://msdn.microsoft.com/en-us/library/ayes1wa5(v=vs.110).aspx 了解更多信息(这是 C#,但在其他 Cs 中类似)

【讨论】:

    【解决方案2】:

    int? nullableIntVal = 100; var dblVal = Convert.ToDouble(nullableIntVal.GetValueOrDefault(0));

    【讨论】:

      【解决方案3】:

      这里

      subTotal += carts.Amount * product.Price;
      

      您尝试将int? 隐式转换为int (carts.Amount)。解决方案:

      if (carts.Amount.HasValue) {
          subTotal += carts.Amount.Value * product.Price;
      } else {
          //carts.Amount is null, handle it
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-13
        • 2015-05-23
        • 1970-01-01
        • 1970-01-01
        • 2021-08-14
        • 1970-01-01
        • 1970-01-01
        • 2014-01-14
        相关资源
        最近更新 更多