划分两个数字

时间:2016-06-12 13:16:21

标签: c# variables

我在C#中进行一些自我教育,虽然我做了比这更复杂的项目,但我无法弄清问题是什么。

    private void button4_Click(object sender, EventArgs e)
    {
        int headcount = 0;
        int input = Global.inputcount;

        for (int i = 0; i < Global.inputcount; i++)
        {
            if (Global.myTextFile[i] == "F")
            {
                headcount++;
            }
        }
        float result;
        result = headcount/input; <<< that line
        button4.Text = result.ToString();
    }

这是我的代码,它应该计算F数组myTextFile中出现的次数,它应该将该数字除以输入数。

我调试了很多次,一切都很好,直到[那]行。尽管(人数= ~2201)和(输入= ~4321),结果为0。

我曾经和pascal一起工作,我已经使用C#2个月了,所以如果有人能帮助我,我将不胜感激。

F代表&#34; Fej&#34; =&#34;头&#34;匈牙利语

3 个答案:

答案 0 :(得分:6)

int / int执行integer division 始终忽略小数部分无论您指定哪种类型。

来自/ Operator (C# Reference)

  

分割两个整数时,结果始终为整数。对于   例如,7/3的结果是2.获得商作为理性   数字或分数,给予被除数或除数类型float或type   双

你可能想要使用浮点除法。

result = (float)headcount / input;

result = headcount / (float)input;

同时查看7.7.2 Division operator文档。

答案 1 :(得分:0)

由于您期望INT结果并且两个操作数均为INT类型,因此您将获得0作为输出。您可能希望将其转换为float操作

headcount/(input * 1.0);

答案 2 :(得分:0)

在进行分割之前,你没有投入人数或输入浮动数。它目前正在进行整数除法,它不包括任何余数。 headcount / input与2201/4321相同,整数除以0。通过执行result =(float)headcount /(float)输入将它们转换为浮点数。