【发布时间】:2011-03-01 08:55:22
【问题描述】:
我知道,Int32.MaxValue * Int32.MaxValue 会产生一个大于Int32 的数字;但是,这句话不应该引发某种异常吗?
我在执行IF (X * Y > Z) 之类的操作时遇到了这个问题,所有这些都是Int32。 X 和 Y 足够大,你从 X * Y 得到一个虚假值。
为什么会这样以及如何解决这个问题?除了将所有内容投射到Int64。
【问题讨论】:
-
这是在
unchecked块中吗?