2014-02-28 58 views
0

我得到這個錯誤。做數學列表之間2

符*不能適用於雙和小數

,當我看着如何解決它有添加後綴m或M(試過沒有工作)

類型的操作數
 double[] statsBase = { 708, 2.83, 288, 3.3, 63, 0.9, 10, 20, 350, 180, 900 }; 

     double[] statsPerLvl = { 52, 0.21, 10, 0, 2.93, 0, 1.5, 2.5, 0, 0, 0 }; 

     double[] statsWithLvl = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; 

    for (int num = 0; num <= 10; num++) 
{ 
    statsWithLvl[num] = statsBase[num] + (statsPerLvl[num] * numericUpDown_level.Value); 
} 
+0

您需要添加定義你的變量我們得到正確的答案。否則錯誤文本應該給你足夠的信息來解決這個問題。 – Enigmativity

回答

2

只要做到這一點:

statsWithLvl[num] = statsBase[num] 
    + (statsPerLvl[num] * (double)numericUpDown_level.Value); 
+0

非常感謝,做了我所需要的。 – Marzdor

0

我假設statWithLvlstatsBase是雙打,因爲+運算符沒有錯誤。問題是numericUpDown的Value屬性是小數。如果我的假設是正確的,那麼簡單的解決方法是投下numericUpDown的Value屬性。

0

不能由雙乘小數。您可以通過類型轉換來解決此問題。

類型小數被設計,因爲它在降低的範圍的成本,以字節爲類型的大小可以提供高精度成爲金融計算是有用的。

您可以停止使用double和使用decimal代替。

MSDN

If you want a numeric real literal to be treated as decimal, use the suffix m or M 
0

後綴是僅在字面意義。你沒有文字。您需要將值類型爲Decimal的Value屬性轉換爲Double,以便將其與另一個Double相乘。爲此目的使用Convert.ToDouble。