'十进制'不包含' Round'的定义

时间:2018-01-03 09:23:52

标签: c#

C#的新手,并在第一次尝试使用Round方法时遇到此编译错误。有任何想法吗?感谢:

private void totalPoundsTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    TextBox textBox = textBoxes[1];
    decimal numericValue = textBoxNumberCheck(textBox, 0M, 22046M,false);
    if (numericValue >= 0)
        ***weight.Kilos =  decimal.Round(numericValue / 2.2046M, 2, MidpointRounding.AwayFromZero);***
        UpdateBoxValues();
}

3 个答案:

答案 0 :(得分:8)

我敢打赌你有2.0之前的.Net Core项目版本。在2.0之前的.Net Core中缺少Decimal.Round()方法但现在可用。请查看此issue了解详细信息。

因此,您可以通过升级到.Net Core 2.0或使用Sunil建议的Math.Round()来解决您的问题。

答案 1 :(得分:2)

改为使用Math.Round

private void totalPoundsTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    TextBox textBox = textBoxes[1];
    decimal numericValue = textBoxNumberCheck(textBox, 0M, 22046M,false);
    if (numericValue >= 0)
        weight.Kilos = Math.Round(numericValue / 2.2046M, 2, MidpointRounding.AwayFromZero);

    UpdateBoxValues();
}

答案 2 :(得分:1)

请改用Math.Round。

weight.Kilos = Math.Round(numericValue / 2.2046, 2, MidpointRounding.AwayFromZero);