定义一个变量是double型的
double d=1E200;
d=d*d;
这样并不会报错,但是却已经超出范围了,我怎么样才可以知道超出范围了?谢谢.

解决方案 »

  1.   

    并没有提示出错
    但是实际他的值是Infinity的
    我怎么才能知道已经溢出了,小弟初学很菜,请大侠们帮忙啊
      

  2.   

    thinking in java  有一章讲的就是异常
    您看看应该能找到解决的方法
      

  3.   

    简单的解决方法我是这样写的:
    import java.lang.Double;
    import java.awt.*;
    class MyException extends Exception
    {
    public MyException(String str)
    {
    super(str);
    }
    }
    public class zl
    { public static void main(String[] a)
    {
       double d=1E200;
           try{
             if(d>Math.sqrt(Double.MAX_VALUE))
                 throw new MyException("计算结果会超出范围!");
             else
               d=d*d;
           }
           catch(MyException e)
           {
            e.printStackTrace();
           }
       
    }
    }
      

  4.   

    我设定在d大于double类型的最大值的开平方时抛出异常提示。写的并不是很规范。
      

  5.   

    《Java™ Number Cruncher: The Java Programmer's Guide to Numerical Computing》By Ronald Mak
    很多有趣的东西
      

  6.   

    可以看看清华大学的JAVA教学第四章
      

  7.   

    我无语了if (Double.isInfinite(d * d)) {
        throw new Exception("楼主你到底想干吗!");
    }