我正在编写一个程序,在该程序中窗体在打开之前会打开一段时间。我给用户指定时间以秒为单位。但是我希望这是五种形式。或将数字四舍五入到最接近的倍数。

如果输入1-4,则该值将自动设置为5。
如果输入6-10,则该值将自动设置为10。

最大值是60,最小值是0。

我所拥有的,但是我对此逻辑不满意,因为它将其重置为10秒。

 if (Convert.ToInt32(maskedTextBox1.Text) >= 60 || Convert.ToInt32(maskedTextBox1.Text) <= 0)
                    mySettings.ToastFormTimer = 10000;
                else
                    mySettings.ToastFormTimer = Convert.ToInt32 (maskedTextBox1.Text) * 1000;

最佳答案

那这个呢:

int x = int.Parse(maskedTextBox1.Text)/5;
int y = Math.Min(Math.Max(x,1),12)*5; // between [5,60]
// use y as the answer you need

10-04 10:36