c#数据类型和数组

时间:2011-09-26 00:32:02

标签: c#

我正在为一些货币价值创建一个数组。我创建了一个整数数组,并意识到它需要是十进制值。当我将变量更改为小数并尝试运行它时,我得到“不能隐式地从十进制转换为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;

3 个答案:

答案 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]);`