在我的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.我无法弄清楚为什么.有人可以给我一个暗示我做错了什么吗?
您的变量是整数,这意味着/执行整数除法.除非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.
| 归档时间: |
|
| 查看次数: |
779 次 |
| 最近记录: |