1 isNaN(Float f)方法,我觉得是多余的,因为如果new Float("abc")时,参数不为数字,那么程序一定抛出NumberFormatException,然后中止了,那么怎么用isNaN()来判断是否为数字呢?2 isInfinate()方法,不会用,请高手给出个返回为true的例子。

解决方案 »

  1.   

    Float类有个方法
    intBitsToFloat(int bits) 
    这个方法是将int值的四个字节直接作为float的四个字节生成float数,相当于C++中的内存拷贝
    float f;
    int n = xxx;
    memcpy(&f, &n, sizeof(int));
    但是这样生成的float并不一定有效。这时isNan()就派上用场了isInfinate(),这个不清楚
      

  2.   

    Float f = new Float(2.0e39) ;        System.out.println(f.isInfinite());
      

  3.   

    class InfNaN {
    public static void main(String args[]) {
    Double d1 = new Double(1/0.);
    Double d2 = new Double(0/0.);
    System.out.println(d1 + ": " + d1.isInfinite() + ", " + d1.isNaN());
    System.out.println(d2 + ": " + d2.isInfinite() + ", " + d2.isNaN());
    }
    }
    程序运行产生如下的输出:
    Infinity: true, false
    NaN: false, true
      

  4.   

    polarman:以下两句是什么意思?Double d1 = new Double(1/0.);
    Double d2 = new Double(0/0.);1/0.
    0/0.为什么一个是无穷小,但不是数,另一个不是无穷小,但是数字?