我只做了几天,我很困惑。
其他一切正常,该框仅显示整数,但仍使用十进制值进行计算。
你应该能够做一个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");
}
如果值不是整数(有十进制值),是否要发出警告?
你可以试试
UInt32 result = 0;
UInt32.TryParse("...",
new CultureInfo(""),
out result);
if(result == 0)
{
Console.WriteLine("No parsing");
}
else
{
Console.WriteLine("result={0}", result);
}
一个更优雅的解决方案是:
如果您有权访问DevExpress控件,则应使用SpinEdit控件。要将其范围限制为 0 到 999(仅整数),请设置:
Properties.Mask.EditMask
到“##0;”Properties.MaxValue
到999那么下面的行应该可以正常工作,没有例外:
int myInt = Convert.ToInt32(numBox.Value);