java算术计算结果的数据类型

Ziy*_*ang 7 java math type-conversion

在java中,我知道算术计算结果的数据类型取决于计算中涉及的数字的数据类型.例如,

  1. int + int = int

  2. 长/双=双

一个.但我找不到任何可以给我所有这些规则的参考资料.有人能帮助我吗?

湾 算术计算中如何避免过流?例如,2长的结果可能不再适合长...

非常感谢.

Dmi*_* B. 4

A。这些规则称为数字提升规则,并在Java 语言规范 \xc2\xa75.6.2 (当前)中指定。

\n\n

b. 有两种普遍接受的处理溢出的方法。

\n\n

第一种方法是后检查,您可以在其中执行运算(例如加法),然后检查结果是否大于任一操作数。例如:

\n\n
int c = a + b;\n\nif( c<a) {  // assuming a>=0 and b>=0\n   // overflow happened\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

第二种方法是预检查,基本上从一开始就试图避免溢出的发生。例子:

\n\n
if( a > Integer.MAX_INTERGER - b ) {\n   // overflow happened\n}\n
Run Code Online (Sandbox Code Playgroud)\n

  • 您的第一张支票并不总是有效。如果 b 为负数,则 `c &lt; a` 为 true,不会溢出。 (2认同)