简单的计算器总是返回0

Tyl*_*ler 0 c#

在我的C#应用​​程序中,我想实现一个简单的计算.我得到了这段代码:

private void button1_Click(object sender, EventArgs e)
{
    int percentField;
    int priceField;
    int result;

    percentField = int.Parse(txtPercentNew.Text);
    priceField = int.Parse(txtPriceNew.Text);

    result = priceField / 100 * percentField;

    MessageBox.Show(result.ToString());
}
Run Code Online (Sandbox Code Playgroud)

但问题是MessageBox显示我0.我无法弄清楚为什么.有人可以给我一个暗示我做错了什么吗?

Jon*_*Jon 8

您的变量是整数,这意味着/执行整数除法.除非priceField至少等于100,否则结果总是为0.

您可以通过priceField在分割之前转换为浮点类型来更正问题:

(double)priceField / 100 * percentField;
Run Code Online (Sandbox Code Playgroud)

但是,这result在类型时不起作用,int因为编译器希望保护您免受无意的舍入错误.所以你要么必须强制转换为整数(由于舍入而失去精度):

result = (int)((double)priceField / 100 * percentField);
Run Code Online (Sandbox Code Playgroud)

或者做result一个也好double.