2

我只做了几天,我很困惑。

其他一切正常,该框仅显示整数,但仍使用十进制值进行计算。

4

3 回答 3

2

你应该能够做一个int myInt = Convert.ToInt32(numBox.Value);

numBox.Value 是一个小数,但该代码会导致它被转换为一个整数。

只要知道如果你确实得到一个十进制值,它将向上或向下舍入。

编辑:如果您只想要正值,Aghilas Yakoub 的解决方案可能会更好。我的解决方案会将小数转换为 int,但它仍然可以允许负数。真正你应该做的是将你的设置numBox.Minimum为 0,这样它就不能低于 0。

编辑 2:如果您想在值为负数时发出警告,请尝试以下操作:

int myInt = Convert.ToInt32(numBox.Value);
if (myInt < 0)
{
    MessageBox.Show("Warning, your number must be 0 or greater");
}

如果值不是整数(有十进制值),是否要发出警告?

于 2012-10-04T20:29:55.713 回答
0

你可以试试

UInt32 result = 0;

UInt32.TryParse("...",
                new CultureInfo(""),
                out result);

if(result == 0)
{
  Console.WriteLine("No parsing");
}
else
{
 Console.WriteLine("result={0}", result);
}
于 2012-10-04T20:32:35.197 回答
-1

一个更优雅的解决方案是:

如果您有权访问DevExpress控件,则应使用SpinEdit控件。要将其范围限制为 0 到 999(仅整数),请设置:

  • Properties.Mask.EditMask“##0;”
  • Properties.MaxValue999

那么下面的行应该可以正常工作,没有例外:

int myInt = Convert.ToInt32(numBox.Value);
于 2015-12-08T14:10:55.583 回答