划分两个数字

我正在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(); } 

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

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

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

F代表匈牙利语中的“Fej”=“Head”

int / int执行整数除法 , 无论你指定哪种类型,它总是忽略小数部分。

来自/运营商(C#参考)

除以两个整数后,结果始终为整数。 例如,7/3的结果是2.要获得商作为有理数或分数,请给予被除数或除数类型float或类型double。

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

 result = (float)headcount / input; 

要么

 result = headcount / (float)input; 

检查7.7.2分部操作员文档。

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

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

 headcount/(input * 1.0);