在
java中,我知道算术计算结果的数据类型取决于计算中涉及的数字的数据类型.
例如,
例如,
> int int = int
> long / double = double
一个.但我找不到任何可以给我所有这些规则的参考资料.有人能帮帮我吗?
湾算术计算中如何避免过流?例如,2长的结果可能不再适合长…
非常感谢.
解决方法
一个.这些规则称为数字促销规则,在
Java Language Specification中指定
湾有两种普遍接受的处理溢出的方法.
第一种方法,一种后检查,你在哪里进行操作,比如说加法,然后检查结果是否大于任何一个操作数.例如:
int c = a + b; if( c<a) { // assuming a>=0 and b>=0 // overflow happened }
第二种方法是预检,你基本上试图避免首先发生溢出.例:
if( a > Integer.MAX_INTERGER - b ) { // overflow happened }