做数学列表之间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);
}
答
只要做到这一点:
statsWithLvl[num] = statsBase[num]
+ (statsPerLvl[num] * (double)numericUpDown_level.Value);
+0
非常感谢,做了我所需要的。 – Marzdor
答
我假设statWithLvl
和statsBase
是双打,因为+
运算符没有错误。问题是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。
您需要添加定义你的变量我们得到正确的答案。否则错误文本应该给你足够的信息来解决这个问题。 – Enigmativity