2016-10-31 18 views
-3
subTotal += carts.Amount * product.Price; 

不能隱式轉換類型'int?'到'雙'。存在明確的轉換(您是否缺少演員?)在.NET中如何將一個可爲空的int轉換爲double?

+0

您需要獲取可爲空值(如果有)。 – SLaks

+0

您不應該使用雙打貨幣代碼。使用[十進制](https://msdn.microsoft.com/en-us/library/364x0z75.aspx)。 – mason

+0

存在明確的轉換。你忘了在表達中加入演員陣容嗎?真的不清楚你在問什麼。 Stack Overflow有很多的答案,已經討論過從'int'轉換爲'double',並且從可空值轉換爲不可空值(請參閱標記爲重複)。如果您在其他許多帖子中沒有回答問題,請解釋:提供一個很好的[mcve],顯示您嘗試過的內容,並具體描述_specifically_您嘗試過的內容以及您遇到的問題。 –

回答

-2

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

0

這裏

subTotal += carts.Amount * product.Price; 

嘗試隱式轉換的int?intcarts.Amount)。解決方案:

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