划分两个数字
我正在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);