双倍的价值太大了

时间:2013-07-15 14:38:33

标签: java double range

如果为Double分配的值大于Double.MAX_VALUE,Java如何处理这种情况?

是否指定了标准行为?

2 个答案:

答案 0 :(得分:9)

是的,它是在language specification #4.2.4

中定义的
  

溢出的浮点运算会产生有符号的无穷大。

如果是双打,则结果为Double.POSITIVE_INFINITY

但请注意,如果在编译时尝试将这么大的值赋值给double,则会出现编译错误:

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

如果您需要处理非常大的数字,也可以使用BigDecimal

答案 1 :(得分:0)

也许BigDecimal类对你很有意思。 使用这些类,您可以计算超出双倍范围的内容。