为什么java在超过Double.Max_Value时返回正无穷大?

时间:2014-11-04 16:20:08

标签: java double

当我尝试执行此代码时,结果如何大于Double.MAX_Value?溢出/下溢是否会影响java中的双数据类型?

代码:

   result = Double.MAX_VALUE * Double.MAX_VALUE;

   if (result > Double.MAX_VALUE) {
      // Some return statements.
   }

1 个答案:

答案 0 :(得分:6)

来自Java Language Specification

  

浮点乘法的结果由IEEE 754算法的规则确定:

     
      
  • [...]
  •   
  • 如果产品的幅度太大而无法表示,我们说操作溢出; 结果是无限的适当标志
  •   

由于Double.MAX_VALUE * Double.MAX_VALUE太大而无法表示,因此其值变为无穷大。