Proper way to check that a numerical range "is valid"

I

illegal.prime

Hey all, I have an app, that could take two numbers of any type of
numerical type int, long, double, float, uint, ulong, etc. I want to
check that the numbers are part of a range that I consider "valid".
For my circumstances, I don't consider float.PositiveInfinity valid,
nor do I consider the two numbers valid if the second number is smaller
than the first. In other words, I want to check that the range is
valid.

I notice that while float and double have PositiveInfinity int does
not. Does int have no comparable concept? They obviously have
MaxValue and MinValue, but I'm looking for a concept similar to
positive or negative infinity.

In summary, I just want to make my valid range check code as robust and
thorough as possible.

Thanks,
Novice
 
C

Carl Daniel [VC++ MVP]

Hey all, I have an app, that could take two numbers of any type of
numerical type int, long, double, float, uint, ulong, etc. I want to
check that the numbers are part of a range that I consider "valid".
For my circumstances, I don't consider float.PositiveInfinity valid,
nor do I consider the two numbers valid if the second number is smaller
than the first. In other words, I want to check that the range is
valid.

I notice that while float and double have PositiveInfinity int does
not. Does int have no comparable concept? They obviously have
MaxValue and MinValue, but I'm looking for a concept similar to
positive or negative infinity.

In summary, I just want to make my valid range check code as robust and
thorough as possible.

MinValue and MaxValue are as close as you can get for Int (or any
non-floating point type). These types simply have no concept of infinity -
all possible bit patterns of their representations correspond to valid
integers within their domain.

-cd
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top