做数学列表之间2

问题描述:

我得到这个错误。做数学列表之间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

只要做到这一点:

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

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

我假设statWithLvlstatsBase是双打,因为+运算符没有错误。问题是numericUpDown的Value属性是小数。如果我的假设是正确的,那么简单的解决方法是投下numericUpDown的Value属性。

不能由双乘小数。您可以通过类型转换来解决此问题。

类型小数被设计,因为它在降低的范围的成本,以字节为类型的大小可以提供高精度成为金融计算是有用的。

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

MSDN

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

后缀是仅在字面意义。你没有文字。您需要将值类型为Decimal的Value属性转换为Double,以便将其与另一个Double相乘。为此目的使用Convert.ToDouble。