2013-07-15 37 views
0

Java如何处理Double分配的值大于Double.MAX_VALUE的情况?双重值太大

是否有指定的标准行为?

+3

你刚刚测试过吗? – Sirko

回答

8

是的,它在language specification #4.2.4定义:

A floating-point operation that overflows produces a signed infinity.

在双打中的情况下,结果将是Double.POSITIVE_INFINITY

不过请注意,如果您尝试这样一个较大的值分配给在编​​译时双,你会得到一个编译错误:

double d = 1e100; //ok 
double d = 1e300 * 1e300; //Double.POSITIVE_INIFINITY 
double d = 1e900; //does not compile 

如果你需要处理大量的,你也可以使用BigDecimal

0

也许类BigDecimal对你很有趣。 通过这些课程,您可以计算超出双倍范围的内容。