Math.Round()不适用于Windows Phone。为什么?

时间:2013-09-25 04:48:36

标签: c# windows-phone-8 windows-phone

我试图使用Math.Round()来舍入价值。但它不起作用。我可以知道为什么吗?这里的任何人都知道确切的原因吗​​?

        double num = 0;
        if (double.TryParse(number.Text, out num) && num > 0 && num < 60)
        {
            Math.Round(num);
            browser.Navigate(new Uri("/file" + num + ".html", UriKind.Relative));
        }
        else
        {
            MessageBox.Show("Expected Input Range: 1 to 59");
        }

1 个答案:

答案 0 :(得分:0)

Math.Round会返回舍入值,因此您必须将新值重新分配回num

示例:

double num = 0;
if (double.TryParse(number.Text, out num) && num > 0 && num < 60)
{
    num = Math.Round(num);
    browser.Navigate(new Uri("/file" + num + ".html", UriKind.Relative));
}
else
{
    MessageBox.Show("Expected Input Range: 1 to 59");
}

但是我觉得你不想要任何小数位,在这种情况下,你只需要投射int

 browser.Navigate(new Uri("/file" + (int)num + ".html", UriKind.Relative));

试验:

double num = 34.5;
num = Math.Round(num); // returns 34.0

double num = 34.5;
int newNum = (int)num; // returns 34