我正在为一些货币价值创建一个数组。我创建了一个整数数组,并意识到它需要是十进制值。当我将变量更改为小数并尝试运行它时,我得到“不能隐式地从十进制转换为int”。我将鼠标悬停在变量上,它们都显示为小数。我记得过去在int之后放置.00M强制它们是小数,但这似乎没有什么区别。这对其他人有意义吗?
//Global var
Decimal lastIndexUsed = -1;
Decimal[,] quarters = new Decimal[10, 5];
string[] Branch = new string[10];
//Calc button
decimal Q1;
decimal Q2;
decimal Q3;
decimal Q4;
Q1 = Decimal.Parse(txtQ1.Text);
Q2 = Decimal.Parse(txtQ2.Text);
Q3 = Decimal.Parse(txtQ3.Text);
Q4 = Decimal.Parse(txtQ4.Text);
lastIndexUsed = lastIndexUsed + 1;
quarters[lastIndexUsed, 0] = Q1;
quarters[lastIndexUsed, 1] = Q2;
quarters[lastIndexUsed, 2] = Q3;
quarters[lastIndexUsed, 3] = Q4;
Branch[lastIndexUsed] = txtBranch.Text;
标记的部分是许多错误中的第一个错误。
Decimal row;
Decimal col;
Decimal accum;
//Calculate
for (row = 0; row <= lastIndexUsed; row++)
{
accum = 0;
for (col = 0; col <= 3; col++)
{
*** accum = accum + quarters[row, col];***
}
quarters[row, 4] = accum;
答案 0 :(得分:3)
lastIndexUsed
用作数组索引,应保持整数。
答案 1 :(得分:1)
即使您使用的是小数组数组,索引器仍然是一个整数。
Decimal lastIndexUsed;
应该是
int lastIndexUsed
答案 2 :(得分:1)
Decimal[,] quarters = new Decimal[10, 5];
索引号是整数。您不能按小数索引。该数组包含小数。
我将其更改为此以使其运行并打印10.15,就像您期望的那样
`//Global var
int lastIndexUsed = -1;
Decimal[,] quarters = new Decimal[10, 5];
string[] Branch = new string[10];
//Calc button
decimal Q1;
decimal Q2;
decimal Q3;
decimal Q4;
Q1 = Decimal.Parse("10.15");
Q2 = Decimal.Parse("13");
Q3 = Decimal.Parse("123.9877");
Q4 = Decimal.Parse("321");
lastIndexUsed = lastIndexUsed + 1;
quarters[lastIndexUsed, 0] = Q1;
quarters[lastIndexUsed, 1] = Q2;
quarters[lastIndexUsed, 2] = Q3;
quarters[lastIndexUsed, 3] = Q4;
Branch[lastIndexUsed] = "hello";
Console.WriteLine(quarters[0,0]);`