0

を使用して値を丸めようとしていました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");
        }
4

1 に答える 1

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
于 2013-09-25T04:52:47.623 に答える