C# 在.NET中,如何将可为null的int转换为double?

C# 在.NET中,如何将可为null的int转换为double?,c#,.net,C#,.net,无法将类型“int”隐式转换为“double”。存在显式转换(是否缺少强制转换?) 您可以使用Convert.ToDouble(x)其中x是int值。查看更多信息(这是C#,但在其他Cs中类似)int?nullableIntVal=100; var dblVal=Convert.ToDouble(nullableIntVal.GetValueOrDefault(0)) 这里 subTotal += carts.Amount * product.Price; 您试图将int?隐式转换为int(c

无法将类型“int”隐式转换为“double”。存在显式转换(是否缺少强制转换?)


您可以使用Convert.ToDouble(x)其中x是int值。查看更多信息(这是C#,但在其他Cs中类似)

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

这里

subTotal += carts.Amount * product.Price;
您试图将
int?
隐式转换为
int
carts.Amount
)。解决方案:

subTotal += carts.Amount * product.Price;

您需要获取nullable的值(如果它有一个值的话)。货币代码不应该使用double。存在显式转换。你是不是忘了在你的表达中加入一个角色?真的不清楚你在问什么。关于堆栈溢出,已经有很多答案在讨论从
int
转换为
double
以及从可为null的值转换为不可为null的值(请参见标记的duplicate)。如果你有一个问题在其他许多帖子中没有得到回答,请解释:提供一个很好的展示你尝试了什么,并具体描述你尝试了什么以及你遇到了什么问题。
if (carts.Amount.HasValue) {
    subTotal += carts.Amount.Value * product.Price;
} else {
    //carts.Amount is null, handle it
}