Wil*_*son 0 c# double int decimal ambiguous
我的程序无法确定Math.Round是以a decimal还是a 执行double,但我不知道如何解决这个问题......这是我的代码,尽管倒数第二行是我所关注的.
ArrayList topp1 = new ArrayList();
int toppcount = 0;
foreach (Control cb in GroupBoxH1T.Controls)
{
CheckBox cb1 = cb as CheckBox;
if (cb1.Checked == true)
{
toppcount++;
topp1.Add(cb1.Text);
}
}
if (cbhwchoice.Checked == false)
{
ArrayList topp2 = new ArrayList();
foreach (Control cb in GroupBoxH2T.Controls)
{
CheckBox cb1 = cb as CheckBox;
if (cb1.Checked == true)
{
toppcount++;
topp2.Add(cb1.Text);
}
}
toppcount = Math.Round((toppcount/2,MidpointRounding.AwayFromZero);
}
Run Code Online (Sandbox Code Playgroud)
Math.Round期望浮点数或十进制数,因为在整数上调用它将不起作用.如果要调用它,请传入该类型的值.为此,您可以简单地将分子和分母转换为所需的类型.例如:
decimal value = Convert.ToDecimal(toppcount) / 2.0M;
toppcount = Math.Round(value, MidpointRounding.AwayFromZero);
Run Code Online (Sandbox Code Playgroud)