我在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;匈牙利语
答案 0 :(得分:6)
int / int
执行integer division 始终忽略小数部分无论您指定哪种类型。
分割两个整数时,结果始终为整数。对于 例如,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)输入将它们转换为浮点数。