Why does Int32.MaxValue * Int32.MaxValue == 1?
<p>OK, I know, Int32.MaxValue * Int32.MaxValue will yield a number larger than Int32 BUT, shouldn't this statement raise some kind of an exception?</p>

<p>I ran across this when doing something like IF (X * Y > Z) where all are Int32. in X and Y are sufficiently large enough, you get a bogus value from X*Y</p>

<p>Why is this so and how to get around this? besides casting everything to int64</p>
